- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
线性表(C)循环链式存储
2.5 线性表的其它存储方法;2.5 线性表的其它存储方法;L;void xhInsert(LinkList L,int i,
ElemType x)
{
/*让p指向第i-1个结点*/
p=L; j=0;
while(p-next!=L ji-1)
{ p=p-next;
j++;
}
;L;void xhDelete(LinkList L,int i,
ElemType x)
{
/*让p指向第i-1个结点*/
p=L; j=0;
while(p-next-next!=L
ji-1)
{ p=p-next;
j++;
}
;rear;rear;rear;双链表;双链表:在单链表的每个结点中再设置一个指向其前驱结点的指针域。;双向循环链表;
typedef struct DulNode
{
ElemType data;
struct DulNode *prior, *next;
} DulNode,*DuLinkList; ;双向链表的初始化;双链表的操作——插入;int insDLinkList(DuLinkList L, int i, ElemType x){
DuLinkList p=L;//工作指针指向头结点
DuLinkList newp;//用于指向??结点
int j=0;//计数器置0
//寻找插入位置,使得工作指针p指向第i-1个结点
while(p-next!=L ji-1) {p=p-next; j++;}
if(p-next==Lji-1 || ji-1){
printf(位置不合理!\n);
return 0;
}
//接后 ;//插入
newp=new DulNode;
newp-data=x;
newp-next=p-next;
newp-prior=p;
p-next-prior=newp;
p-next=newp;
return 1;
}
;双链表的操作——删除;按后继方向寻找要删除的结点;//删除
q=p-next; x=q-data;
p-next=q-next;
q-next-prior=p;
delete q;
return 1;
}
;本章总结
文档评论(0)