数据结构练习题(1)

发布时间:2024-11-17

练习题:

1)在一个单链表head中,若要在指针p所指结点后插入一个q指针所指结点,则执行_____。

A. p->next=q->next; q->next=p;

B. q->next=p->next; p=q;

C. p->next=q->next; p->next=q;

D. q->next=p->next; p->next=q;

2)在一个单链表head中,若要删除指针p所指结点的后继结点,则执行_____。

A. p=p->next;free(p);

B. p->next=p->next->next; free(p);

C. q= p->next ;q->next=p->next; free(q);

D. q=p->next; p->next=q->next ;free(q);

3)若长度为n的线性表(a1, a2,…, a n)采用顺序存储,在第i个位置上插入一个新元素,需要依次向后移动个数据元素。

A n-i

B n-i-1

C n-i+1

D n+i

3)完成下列打印带头单链表的各元素的算法.

typedef struct List

{ int data;

struct List *next;

} Node,*Link;

void printlk(Link head)

{Link p=head->next;

while( (1) )

{ printf(“%d\n”,p->data);

(2) ;

}

4)已知无头单链表A和B表示两个集合,本算法实现A=A-B (集合的补运算)。

typedef struct node {

int data;

struct node *next;}lnode;

void setminus(lnode *&A,lnode *B)

{lnode *p,*q;

p= A ;

p->next=A; A=p;

while (B!=NULL)

{p=A;

while ( B )

if(B->data==p->next->data)

{q=p->next; C ;free(q);}

else D ;

E ;

}

A=A->next;

}

5)下列算法创建n个元素的带头单链表.

typedef struct lnode { int data;

struct lnode *next;

}lnode,*linklist ;

void create(linklist &head, int n)

{linklist p; int i;

head=(linklist)malloc(sizeof(lnode));

A ; head=null

for(i=n;i>0;i--)

{p =(linklist)malloc(sizeof(lnode));

scanf(“%d”,&p->data);

B ;p=p->next

C ;

}

}

数据结构练习题(1).doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219