首页 > 其他分享 >每日记录(2.3双向链表)

每日记录(2.3双向链表)

时间:2023-06-05 23:45:31浏览次数:62  
标签:next 链表 prior 前驱 双向 2.3 后继

双向链表的基本概念

双链表顾名思义,就是链表由单向的链变成了双向链。 使用这种数据结构,我们可以不再拘束于单链表的单向创建于遍历等操作,大大减少了在使用中存在的问题。每一个节点都有两个指针分别指向该节点的前驱和后继。

定义:

struct DuLNode{
    EtypedeflemType   data; //数据域          
    struct DuLNode  *prior; //前驱 
    struct DuLNode  *next;  //后继
}DuLNode, *DuLinkList

 

1.双向链表的插入

 


由于每个节点都有前驱和后继,所以插入的时候p节点及其前驱的前驱和后继都要更新。所以需要按顺序写四条语句更新。(新增结点别忘了给数据域赋值)

s->prior=p->prior;
p->prior->next=s;
s->next=p;
p->prior=s;

 


2.双向链表的删除

 

删除一个结点,只需要把p结点的前驱的后继更新,p的后继的前驱更新,只需要两条语句即可。

p->prior->next=p->next;
p->next->prior=p->prior;

顺序表和链表的比较

 



标签:next,链表,prior,前驱,双向,2.3,后继
From: https://www.cnblogs.com/xiao-hong111/p/17459316.html

相关文章

  • 顺序表 与 链表 的优缺点比较涅~( ̄▽ ̄)~*
    顺序表  优点是可以随机存取元素,存储密度高,结构简单;        缺点是需要一片地址连续的存储空间,不便于插入和删除元素(因为插入需要将大量的元素向后移动,删除需要将后续大量的元素向前覆盖),表的容量难以确定; 链表   优点是便于结点的插入与删除(只需要修......
  • 条件渲染,列表渲染,双向数据绑定,事件处理,checkbox单选,
    条件渲染v-if,v-else-if,v-else:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><scriptsrc="/js/vue.js"></script></head><......
  • 双链表
                                              《目录》简介建模辅助方法初始化出错处理空间申请迭代器链表算法尾插遍历头插尾删头删按值插入 查找求长度按值删除排序清除与销毁逆置单链表代......
  • c语言基于链表的文件存储与读取
    今天写了一下如何将链表中的数据存储到文件中head为链表的起始结点写入文件voidfilewirte(LinkListhead){LinkListfd;FILE*p=fopen("student_grad.txt","w");if(p==NULL){printf("没有东西");getchar();exit(1);}fd=head......
  • [学习笔记]数据结构_线性表_顺序表and单链表
    线性表线性表是一种逻辑结构,表示元素之间一对一的相邻关系。顺序表和链表是指存储结构,两者属于不同层面上的概念。线性表的基本操作boolInitList(&L)//初始化表,构造一个空的线性表intLength(L)//求表长。返回线性表L的长度,即L中数据元素的个数intLocateElem(L,e)//按......
  • 链表:剑指 Offer 06. 从尾到头打印链表
    题目描述: 方法:递归法 classSolution{ArrayList<Integer>tmp=newArrayList<>();publicint[]reversePrint(ListNodehead){recur(head);intres[]=newint[tmp.size()];for(inti=0;i<res.length;i++){......
  • JBPM5 Designer 2.3源码问题
    最新本2.4发布,但是里面是使用Maven的module方式来管理,鉴于知识有限,不会这种方式,所以选择2.3版本的源码[color=blue][b]2.4[/b][/color]war:[url]http://sourceforge.net/projects/jbpm/files/designer/designer-2.4/[/url]源码:[url]https://github.com/dro......
  • Maven3 + Nexus 2.3 + Hudson 2.x/3.x + Tomcat7
    [color=blue][b]以下在Hudson2.x配置成功,然后升级到Hudson3.x后,配置依然有效.[/b][/color][color=blue][b]Hudson邮件配置&构建bash项目[/b][/color][url]http://www.blogjava.net/Man/archive/2012/12/26/393520.html[/url]关于邮件的参数参考:[url]http:/......
  • 既然 WebSocket 支持双向通信,功能看似比 HTTP 强大,那么我们是不是可以基于 WebSocket
    答:1.HTTP协议稳定易实现,大部分Web开发后台都没有主动发送数据给前端的需求2.WebSocket协议相对复杂,维护长连接也需要增加服务器资源开销,还要处理连接端开后重连问题因此,WebSocket并不能取代HTTP,它只适合在高实时的场景,需要服务器给客户端主动推......
  • 反转链表
    反转链表最常用的就是双指针法了图解:首先,创建两个指针,begin和end,一个begin为空,一个end指向链表开头1。然后begin=end;end往后移动指向像一个节点,如下图重复以上步骤,直到end为空。代码如下/***Definitionforsingly-linkedlist.*structListNode{*intval;......