资讯动态

数据结构笔记(C++,双链表,循环链表2)

发布时间:2026/10/10 11:05:31 来源:尧图企业网站定制
双链表1、尾插法建立双链表void CreatDlistR(DLNode *L,int a[],int n){ DLNode *s,*r; int i; L(DLNode *)malloc(sizeof(DLNode()); L-nextNULL; rL; //和单链表一样r始终指向终端节点开始头结点也是尾结点 for(i1;in;i){ s(DLNode *)malloc(sizeof(DLNode()); s-dataa[i]; //下边3句将s插入到L的尾部并且r指向s,s-priorr;这一句是和建立单链表不同的地方 r-nexts; s-priorr; //单链表是rr-next rs; //单链表是rr-next } r-nextNULL; }2、双链表查找DLNode* searchNode(DLNode *C,int x){ DLNode *pC-next; while(p!NULL){ if(p-datax)break; pp-next; } return p; }3、双链表插入s-nextp-next; s-priorp; p-nexts; s-next-priors;//假如p指向最后一个结点本行可以去掉双向链表的插入2s-priorp-prior;p-prior-nexts;s-nextp;p-priors;4、双链表删除qp-next; p-nextq-next; q-next-priorp; free(q);双向链表的删除2p-prior-nextp-next;p-next-priorp-prior;循环链表循环单链表和循环双链表是有对应的单链表和双链表改造而来的只需要在终端节点和头结点之间建立联系即可。p指针沿着循环链表走走到为尾结点的条件是p-nexthead。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑