当前位置:   article > 正文

线性表的链式表示——双链表_在双链表中,将 s 所指新结点插入到 p 所指结点之后,其语句应该为

在双链表中,将 s 所指新结点插入到 p 所指结点之后,其语句应该为

定义

双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表(解决了单链表只能从头结点依次访问顺序向后遍历的问题)
双链表中结点的类型表述如下:

typedef struct DNode{				//定义双链表结点类型
	EleType data;					//数据域
	struct DNode *prior,*next;		//前驱和后继指针
}DNode,*DLlinklist;
  • 1
  • 2
  • 3
  • 4

双链表的逻辑结构图:
在这里插入图片描述

双链表上基本操作

1、插入操作
在双链表中p所指结点之前插入结点*s,其指针变化如下图:
在这里插入图片描述
插入操作的代码片段如下:

s->next = p->next;			//将结点*s插入到结点*p之后
p->next->prior = s;
s->prior = p;
p->next = s;
  • 1
  • 2
  • 3
  • 4

【注】上述代码的语句顺序不唯一,但也不是任意的;如第一,二句必须在第四句之前。
2、删除操作
删除双链表中结点*p,其指针的变化过程如下图:
在这里插入图片描述
删除操作的片段代码如下:

p->next = q;
q->next =->prior = p;
free(q);						//释放结点空间
  • 1
  • 2
  • 3

【注】a为p结点,b为q结点

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/952513
推荐阅读
相关标签
  

闽ICP备14008679号