怎样使双向链表头结点指向最后一个结点
答案:2 悬赏:0 手机版
解决时间 2021-02-24 09:18
- 提问者网友:欲劫无渡
- 2021-02-24 04:31
用头插法给一个双向链表赋值后,怎样使头结点的左指针指向最后一个结点?
最佳答案
- 五星知识达人网友:举杯邀酒敬孤独
- 2021-02-24 06:02
1、双向链表的每个结点的存储结构为
typedef struct DuLNode
{
ElemType data;
DuLNode * prior,* next;//指向前驱结点和后继结点的指针
}DuLNode,* DuLinkList;
2、头结点的前驱指针是指向链表的最后一个结点,
用头插法建立链表时,是在链表的头部增加结点,即最后一个结点始终是不变的
即新增结点(链表只有头结点时新增结点除外)不需要修改头结点的前驱指针,
使其指向最后一个结点
3、当链表只有头结点,即p->next = p->prior = p; 时(p是头结点)
添加链表的第一个结点,此时才需要修改头结点的前驱指针使其指向最后一个结点
s->data = e;//s是新增的第一个结点
s->prior = p;//p是头结点
s->next = p->next;
p->next->prior = s;
p->next = s;
typedef struct DuLNode
{
ElemType data;
DuLNode * prior,* next;//指向前驱结点和后继结点的指针
}DuLNode,* DuLinkList;
2、头结点的前驱指针是指向链表的最后一个结点,
用头插法建立链表时,是在链表的头部增加结点,即最后一个结点始终是不变的
即新增结点(链表只有头结点时新增结点除外)不需要修改头结点的前驱指针,
使其指向最后一个结点
3、当链表只有头结点,即p->next = p->prior = p; 时(p是头结点)
添加链表的第一个结点,此时才需要修改头结点的前驱指针使其指向最后一个结点
s->data = e;//s是新增的第一个结点
s->prior = p;//p是头结点
s->next = p->next;
p->next->prior = s;
p->next = s;
全部回答
- 1楼网友:掌灯师
- 2021-02-24 06:21
最后一个节点
头结点
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯