永发信息网

双向循环链表的概念

答案:1  悬赏:30  手机版
解决时间 2021-02-06 03:55
双向循环链表的概念
最佳答案
本课主题: 循环链表与双向链表
教学目的: 掌握循环链表的概念,掌握双向链表的的表示与实现
教学重点: 双向链表的表示与实现
教学难点: 双向链表的存储表示
授课内容:
一、复习线性链表的存储结构

二、循环链表的存储结构
循环链表是加一种形式的链式存储结构。它的特点是表中最后一个结点的指针域指向头结点。

循环链表的操作和线性链表基本一致,差别仅在于算法中的循环条件不是p或p->next是否为空,而是它们是否等于头指针。
三、双向链表的存储结构

提问:单向链表的缺点是什么?
提示:如何寻找结点的直接前趋。
双向链表可以克服单链表的单向性的缺点。
在双向链表的结点中有两个指针域,其一指向直接后继,另一指向直接前趋。
1、线性表的双向链表存储结构
typedef struct DulNode{
struct DulNode *prior;
ElemType data;
struct DulNode *next;
}DulNode,*DuLinkList;
对指向双向链表任一结点的指针d,有下面的关系:
d->next->priou=d->priou->next=d
即:当前结点后继的前趋是自身,当前结点前趋的后继也是自身。
2、双向链表的删除操作

Status ListDelete_DuL(DuLinkList &L,int i,ElemType &e){
if(!(p=GetElemP_DuL(L,i)))
return ERROR;
e=p->data;
p->prior->next=p->next;
p->next->prior=p->pror;
free(p);
return OK;
}//ListDelete_DuL
3、双向链表的插入操作

Status ListInsert_DuL(DuLinkList &L,int i,ElemType &e){
if(!(p=GetElemP_DuL(L,i)))
return ERROR;
if(!(s=(DuLinkList)malloc(sizeof(DuLNode)))) return ERROR;
s->data=e;
s->prior=p->prior;
p->prior->next=s;
s->next=p;
p->prior=s;
return OK;
}//ListInsert_DuL
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
地暖十大品牌中,那款比较好呢?
做服装前厅,笑迎天下客求下联广字开头。
华硕笔记本怎么设置BIOS开机密码
网上那么多假的小额贷款公司,为什么就没人管
捷急的意思是什么啊?知道的请说下!
不慎用了猫咪用过的吸管和喵咪喝的奶,怎么办
经常会在晚上,虽然住在家里,不过还是有一种
怎么给外国明星寄礼物?.
做梦有人追杀我
天上飞的、地下跑的、水里游的是什么?
客强主弱,客让平半降让平手怎么理解
北京到临江开车怎么走?
魔兽世界6.22目前金币价格是多少
qq玫瑰小镇怎么摆花
女性,17岁,间断低热半年,近2周发现左颈部
推荐资讯
Tymp:Sweep Left是什么意思
张红国羊肉汤馆怎么去啊,有知道地址的么
做了一个很不好的梦,自己坐在房顶,是泣不成
飞利浦车灯哪个型号好,飞利浦车灯最新报价大
求轻松时刻第三季150期背景音乐
海宝印务地址在什么地方,我要处理点事
翻译成英文,你如何解释输了这场比赛呢?
简述班主任的工作职责是什么
张家港第一人民商场的化妆品品牌有哪些?
南京这个城市怎么样,他属于大城市吗
广西博白县广电营业厅在哪个位置
做生意的人狗狗突然被人偷了会影响运气吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?