双向循环链表
请问双向循环链表,插入一个节点怎么做呀。新手菜鸟求助 假设没有头结点,但是有头指针/* 链表结构 */
typedef struct Node
{
char data;
struct Node *prior;
struct Node *next;
} node, *linklist;
linklist CreateList(void) // 返回的是结构指针类型
{
int i = 3; // 申请3个结点
linklist head = NULL, target, temp;
while(i--)
{
/* 申请一个内存空间 */
temp = (linklist)malloc(sizeof(node));
if ( !temp ) //判断是否申请失败
exit(-1);
if (head == NULL) // 判断头指针有没有指向(链表是不是空)
head = temp; // 若空就头指针指向该结点
else
{ // 前结点后指针指向新申请结点,申请的结点前指针指向前一个结点
target->next = temp;
temp->prior = target;
}
target = temp; //前结点移动到申请的这个结点用于下一次添加
}
/* 最后一个结点后指针指向头结点,头结点前指针指向最后结点 */
target->next = head;
head->prior = target;
return head; //返回头结点就是整个链表
}
target和temp都是要插入的节点吗? 丶忘却的年少o 发表于 2017-9-27 10:52
假设没有头结点,但是有头指针
这道题应该怎么理解呢大佬 其实我想表达的就是:在非空双向循环链表(节点指针域分别为pre和next)中q所指的节点前插入一个q所指,链接点的过程怎么搞 月满霜华 发表于 2017-9-27 12:37
其实我想表达的就是:在非空双向循环链表(节点指针域分别为pre和next)中q所指的节点前插入一个q所指,链 ...
temp是用来新生成的结点指针,看代码malloc申请的;target是定位指针,定位前一个节点,方便后一个申请的结点接上去的。
链接点的过程PPT上写的是对的呀。是不是要我给你分析下每一步的意思?
其实很简单,举个例子:
一排队伍每个人左手(pre)拉前一个,右手(next)拉后一个形成圈。这个时候来个人(p)要站在你(q)前面,你怎么办?是不是你(q)左手(pre)拉着他(p),他(p)的右手(next)拉着你。
好了,这个时候p没和你本身前面的人t拉起来,那你就叫t拉他呀,叫t的过程就是你左手(pre)打一下他(t)(当然这一步要在最前面,你要让t知道有个人来了,让t的手放开你,这一步在放在最前)
然后t和p拉起来,就和你拉p一样的意思。
你直接看那个ppt的D项,一起理解这个过程你就明白了。对了,下一题答案是c吧
别忘了点“最佳答案”{:10_315:} 丶忘却的年少o 发表于 2017-9-27 13:37
temp是用来新生成的结点指针,看代码malloc申请的;target是定位指针,定位前一个节点,方便后一个申请的 ...
呃,那个,下一题的答案是D来着{:10_266:} 月满霜华 发表于 2017-9-27 13:41
呃,那个,下一题的答案是D来着
那个判断头结点单链表L为空是D呀,我…… 丶忘却的年少o 发表于 2017-9-27 13:43
那个判断头结点单链表L为空是D呀,我……
呃,我以为你说的是上面那题,,尴尬 丶忘却的年少o 发表于 2017-9-27 13:43
那个判断头结点单链表L为空是D呀,我……
单链表那个确实是D哈哈{:10_256:} 月满霜华 发表于 2017-9-27 13:54
单链表那个确实是D哈哈
不对哎,好像B 丶忘却的年少o 发表于 2017-9-27 13:43
那个判断头结点单链表L为空是D呀,我……
最后一个问题大佬:我拍的图片上那个t->next=p是什么鬼啊? 月满霜华 发表于 2017-9-27 14:09
最后一个问题大佬:我拍的图片上那个t->next=p是什么鬼啊?
不就是你打的前一个人,他把手给了插进来的那个人。 月满霜华 发表于 2017-9-27 13:58
不对哎,好像B
果然是B,我还以为是单链表循环,尴尬 丶忘却的年少o 发表于 2017-9-27 15:53
果然是B,我还以为是单链表循环,尴尬
额,之前就已近点过最佳答案了 丶忘却的年少o 发表于 2017-9-27 15:52
不就是你打的前一个人,他把手给了插进来的那个人。
按你之前说的,这不是插进来的那个人把右手给了之前左面那个人吗?太不合理了{:10_277:} 月满霜华 发表于 2017-9-27 17:09
按你之前说的,这不是插进来的那个人把右手给了之前左面那个人吗?太不合理了
不对,我的意思是之前前面那个人现在要把右手拉住插进来的人!不然前面那个人右手就空了 t->next不是t的后指针吗,也就是插进来那个人的右手
页:
[1]