第一范文网 - 专业文章范例文档资料分享平台

数据结构习题集

来源:用户分享 时间:2025/6/1 4:47:39 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

{printf(“overflow\; return 0;} else

for(i=L->n;i>=0;i--) if(L->data[i]>x

L->data[i+1]=L->data[i]; else break; L->data[i+1]=x; L->n++; return 1; }

2.逐个查找单链表中的结点x,并计数。 int number(lnode *h,int x) { int n=0; while(h) {if(h->data==x) n++;

h=h->next; }

return s; }

3.前插法建立带表头结点的单链表算法中的tag为输人数据结束标志。Lnode *createhh(int tag) { int x;

Lnode *p,*h=(Lnode *)malloc(sizeof(Lnode)); h->next=NULL; printf(“input x:”); scanf(“%d”,&x); while(x!=tag)

{p=(Lnode*)malloc(sizeof(Lnode)); p->data=x; p->next=h->next; h->next=p; scanf(“%d”,&x); } return h; }

49

4.先建立一个表头结点,用尾插法建立该单链表。然后将尾结点的指针域值置为表中第一个结点的首地址,最后释放表头结点。算法描述如下:

Lnode *createht(int tag) { int x;

Lnode *p,*r,*h=(Lnode *)malloc(sizeof(Lnode)); r=h;

printf(“input x:”); scanf(“%d”,&x); while(x!=tag)

{p=(Lnode*)malloc(sizeof(Lnode)); p->data=x; r->next=p; r=p;

scanf(“%d”,&x); }

r->next=h->next; free(h); return r; }

5.设p指向待逆置链表中的第一个结点,先将表头结点的链域置空。顺次取出待逆置链表中的第一个结点,用前插法插入到带表头结点的单链表中。

Void reverseh(Lnode *h) { Lnode *s,*p=h->next; h->next=NULL; while(p) {s=p;p=p->next; s->next=h->next; h->next=s; } }

6.逐个检测顺序表中其值在x和y之间的元素,并计数k,再将其值大于y的元素向前移动k个元素。算法描述如下:

void deletexy(Slist *a,int x,int y) { int i,k=0;

for(i=0;in;i++)

if(a->data[i]>=x&&a->data[i]<=y) k++;

50

搜索更多关于: 数据结构习题集 的文档
数据结构习题集.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c6xywf2b01o4ddq243gul_13.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top