- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
双向链表习题精选
/*8-16设链表上的结点的数据结构为: struct node{ int data; node *left,*right; }; 构造一棵二叉树,结点上的指针left和right分别指向该结点的左子树和右子树。 要求对任一结点,其左子树的所有结点上的数据data值均小于该结点的data值; 其右子树的所有结点上的数据data值均大于该结点的data值。 设输入的结点数据为:24 36 12 8 13 25 77构造一棵满足条件的二叉树。 */ 双向链表方法 插入算法要解决的几种情况 空链表,插入结点,作为链表的第1个结点; 在头结点的右侧; 在头结点的左侧; p2居左,p1居右,找到插入点; 插入尾部结点的左边,即批p2左边。 插入算法要解决的几种情况 空链表,插入结点,作为链表的第1个结点; 在头结点的右侧; 在头结点的左侧; p2居左,p1居右,找到插入点; 插入尾部结点的左边,即批p2左边。 插入算法要解决的几种情况 空链表,插入结点,作为链表的第1个结点; 在头结点的右侧; 在头结点的左侧; p2居左,p1居右,找到插入点; 插入尾部结点的左边,即批p2左边。 插入算法要解决的几种情况 空链表,插入结点,作为链表的第1个结点; 在头结点的右侧; 在头结点的左侧; p2居左,p1居右,找到插入点; 插入尾部结点的左边,即批p2左边。 搜索到的插入点位置有两种可能: 在头结点的左侧; p2居左,p1居右,找到插入点; 插入尾部结点的左边,即批p2左边 搜索到的插入点位置有两种可能: 在头结点的左侧; p2居左,p1居右,找到插入点; 插入尾部结点的左边,即批p2左边 打印输出 解二、不使用二级指针 参见源程序w8-16q.cpp * struct node{ int data; node * left; node * right; }; void main() { node *head,*tail; Create_sort(head,tail); Print(head,1); Print(tail,0); deletechain(head); cout\n; } void Create_sort(node **head,node **tail) { int a; node *p1; *head=*tail=0; cout产生一条有序链表,请输入数据,以-1结束:\n ; cina; while(a!=-1){ p1=new node; p1-data=a; insert(head,tail,p1); cina; } } void insert(node **head,node **tail,node *p) { node *p1,*p2; if(*head==0){ //空链表,插入链表,作为第1个结点 *head=*tail=p; p-left=0;p-right=0; return; } 必须有的语句。 void insert(node **head,node **tail,node *p) { node *p1,*p2; ……………. if((*head)-data=p-data){ //在头结点的右侧 p-left=*head;(*head)-right=p; p-right=0;*head=p; return ; } 必须有的语句。 void insert(node **head,node **tail,node *p) { node *p1,*p2; ……………. p1=p2=*head; while(p2-leftp2-datap-data) //查找插入点 { p1=p2;p2=p2-left; //p2居左,p1居右, } } while(p2-leftp2-datap-data) //查找插入点 if(p2-data=p-data){ //插入p1,p2 中间 p1-left=p;p-right=p1; p-left=p2;p2-right=p; } else{ p-right=p2;p2-left=p; //插入p2左边,即尾部 *tail=p;p-left=0; } void main() { node *head,*tail; Create_sort(head
您可能关注的文档
- 厦门市质检2015文综卷精选.doc
- 参考的电子课程设计报告精选.pdf
- 去瞄一眼“天命反转住宅”精选.pdf
- 又好吃,有能抗癌的白灼西兰花!美味又健康!精选.pdf
- 又吃出来一个大病!全民“四高”,第四高竟然是因为你经常吃...精选.pdf
- 参考作业:研究性学习设计方案(仅供格式参考)精选.pdf
- 友情提醒!良好睡眠才是促进宝宝成长的最佳良药!精选.pdf
- 友利银行(中国)有限公司+服务收费价目表_8.1精选.pdf
- 双井圩大桥跨路施工方案精选.doc
- 双人零和博弈精选.doc
- 运动风格趋势:轻量化户外 2025 S S.pdf
- 数字乡村建设村村通广播应用方案.pdf
- 高盛-日本市场策略 Japan Strategy Flash 1Q325 earnings summary Double-digit (%) profit growth as results largely surprised upwards 0820 2024.pdf
- CEEM《全球智库半月谈》(总第286期).pdf
- 智慧物流概论微课课件第4章智慧物流信息平台.pdf
- 数字乡村公共安全综合平台项目解决方案.pdf
- 智慧物流概论微课课件第7章智慧物流包装.pdf
- 【案例】”啤酒之王“的智慧物流探索之路.pdf
- 数字连江城市数字基座(一期)和数字乡村示范点建设项目.pdf
- 智慧物流概论微课课件第1章智慧物流概述.pdf
文档评论(0)