实验一线性表的创建与访问算法设计.doc

实验一线性表的创建与访问算法设计.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验一线性表的创建与访问算法设计

四、编译程序: #includestdio.h #includemalloc.h #define MAXSIZE 100 typedef char ElemType; typedef struct LNode //定义单链表结点类型 { ElemType data; struct LNode *next; }LinkList; LinkList *CreatlinkR(LinkList *L) //用尾插法建立带头结点的单链表 { LinkList *s, *r; char ch; r = (LinkList *)malloc(sizeof(LinkList)); //创建头结点 L = r; s = r; r-next = NULL; printf(单链表元素值为单个字符, 连续输入,$为结束字符:); while ((ch = getchar()) != $) { r = (LinkList *)malloc(sizeof(LinkList)); //创建新结点 r-data = ch; r-next = NULL; s-next = r; s = r; } r-next=NULL; //终端结点 return (L); } void Sort(LinkList *h) //单链表元素排序 { LinkList *p=h-next,*q,*t; if(p!=NULL) { t=p-next; p-next=NULL; p=t; while(p!=NULL) { t=p-next; q=h; while(q-next!=NULLq-next-datap-data) q=q-next; //在有序表中找插入*p的前驱结点*q p-next=q-next; //将*p插到*q之后 q-next=p; p=t; } } } void DispList(LinkList *L) //输出单链表L { LinkList *p=L-next; while(p!=NULL) { printf(%c ,p-data); p=p-next; } } LinkList *Union(LinkList *La,LinkList *Lb,LinkList *Lc) //求两有序集合的并集 { LinkList *pa=La-next,*pb=Lb-next,*s,*tc; Lc=(LinkList *)malloc(sizeof(LinkList)); tc=Lc; while(pa!=NULLpb!=NULL) { if(pa-datapb-data) { s=(LinkList *)malloc(sizeof(LinkList)); //复制结点 s-data=pa-data; tc-next=s; tc=s; pa=pa-next; } else if(pa-datapb-data) { s=(LinkList *)malloc(sizeof(LinkList)); s-data=pb-data; tc-next=s; tc=s; pb=pb-next; } else { s=(LinkList *)malloc(sizeof(LinkList)); s-data=pa-data; tc-next=s; tc=s; pa=pa-next; //重复元素只复制一个 pb=pb-next; } } if(pb!=NULL) //复制余

您可能关注的文档

文档评论(0)

shenlan118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档