首页 > 其他 > 详细

线性表总结

时间:2019-03-25 23:20:13      阅读:168      评论:0      收藏:0      [点我收藏+]

线性表总结

1. 代码段1简介:按递增有序排列元素

1.1.代码1

void sort(DLinkNode * &L) //1
{ //2
DLinkNode p,pre,*q; //3
p=L-next; //4
L->next->next=NULL; //5
while(p!=NULL) //6
{ //7
q=p->next; //8
pre=L; //9
while(pre->next!=NULL&&pre->next->datadata) //10
pre=pre->next; //11
p->next=pre->next; //12
if(pre->next!=NULL) //13
pre->next->prior=p; //14
pre->next=p; //15
p->prior=pre; //16
p=q; //17
} //18
} //19

1.2不懂的地方

第10行到第17行,p->next=pre->next; p->next->prior=p; pre->next=p; p->prior=pre;这几句的作用不太明白。
第12行p->next=pre->next应该是在pre结点之后插入结点p。
if语句判断pre结点是否为空,但if条件语句后的14-17不太明白具体是什么功能。
第17行应该是扫描剩下的结点

2. 代码段2 简介:尾插法建链表

2.1 代码 2

void CreateListR(LinkList &L, int n) //1
{ //2
int i; //3
L=new LNode; //4
LinkList p,r; //5
r=L; //6
for(i=0;i<n;i++){ //7
p=new LNode; //8
cin>>p->data; //9
r->next=p; //10
r=p; //11
} //12
r->next=NULL; //13
} //14

2.2 不懂的地方

第6,10,11,13行不太懂。第6行应该是让r始终指向尾结点.。第10,11不明白具体是如何实现的。
第13 行应该是将r结点置为空,但不明白为什么要置为空.。

线性表总结

原文:https://www.cnblogs.com/yyk-123/p/10597215.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!