- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构02-线性表.ppt
第2章 线性表 C B A 执行: p-prior-next=p-next; //结点A的next指向结点C (3)已知指针p指向结点B,删除B p p-next-prior=p-prior; //结点C的prior指向结点A free(p); //释放结点B占有的空间 A B C (4).已知指针p指向结点C,在A、C之间插入结点B p f 执行: ① f-prior=p-prior; //结点B的prior指向结点A ② f-next=p; //结点B的next指向结点C ③ p-prior-next=f; //结点A的next指向结点B ④ p-prior=f; //结点C的prior指向结点B A12(x)=1+3x5-7x12 -1 // A 0 1 5 3 12 ^ -7 B17 (x) =6+3x3 -3x5+12x17 -1 // B 0 6 3 3 5 -3 17 ^ 12 pa pb expn next coef 2.4 多项式的链表表示 -1 // C 0 7 3 3 12 -7 17 ^ 12 pc C(x)=A(x)+B(x) C(x)=A(x)+B(x)的算法步骤: 1。pa、pb分别指向首元素结点,产生C(x)的空链表,pc指向头结点; 2。 pa不为空并且pb不为空,重复下列操作: 2-1 pa-expn等于pb-expn (a) pa-coef+pb-coef不等于零: 产生新结点,添加到pc后, pc指向新结点。 pa、pb后移。 (b) pa-coef+pb-coef等于零: pa、pb后移。 2-2 pa-expn小于pb-expn:根据pa产生新结点,添加到pc后, pc指向新结点pa后移。 C(x)=A(x)+B(x)的算法步骤(续) 2-3 pa-expn大于pb-expn:根据pb产生新结点,添加到pc后, pc指向新结点pb后移。 3。pa为空,取pb剩余结点产生新结点, pb为空,取pa剩余结点产生新结点,依次添加到pc的后面。 算法:生成“先进先出”单链表(链式队列) struct node *creat1( ) { struct node *head,*tail,*p; //变量说明 int e; head=(struct node *)malloc(LENG); //生成表头结点 tail=head; //尾指针指向表头 scanf(“%d”,e); //输入第一个数 while (e!=0); //不为0 { p=(struct node *)malloc(LENG);//生成新结点 p-data=e; //装入输入的元素e tail-next=p; //新结点链接到表尾 tail=p; //尾指针指向新结点 scanf(“%d”,e);} //再输入一个数 tail-next=NULL; //尾结点的next置为空指针 return head; //返回头指针 } ^ //// 初始化: head //// 输入1: head ^ 1 p ① ② 每次输入新元素后: ① 生成新结点; p=malloc(结点大小); p-data=e; ② 新结点指针指向首元素;p-next=head-next; ③ 新结点作为首元素: head-next=p; //// head ^ 1 ① ② 2 输入2: p ③ ③ 例2 生成“后进先出”单链表(链式栈)。输入:1,2,3,4,0生成: /// 4 3 2 ^ 1 head 例2 生成“后进先出”单链表(链式栈)。 struct node *creat2( ) //生成“后进先出”单链表 { struct node *head,*p; head=(struct node *)malloc(LENG);//生成表头结点
文档评论(0)