双向链接列表是链接列表的一种变体,与单链接列表相比,可以以两种方式轻松地向前和向后导航.以下是理解双向链表概念的重要术语.
链接 : 链表的每个链接都可以存储一个名为元素的数据.
下一步 : 链接列表的每个链接都包含指向下一个链接的链接.
上一页 : 链接列表的每个链接都包含指向上一个链接的链接,名为Prev.
LinkedList : 链接列表包含指向名为First的第一个链接的连接链接以及名为Last的最后一个链接.
双重链接列表表示
如上图所示,以下是重点需要考虑.
双重链接列表包含一个名为first和last的链接元素.
每个链接都带有一个数据字段和两个名为next和prev的链接字段.
每个链接都链接下一个链接使用下一个链接.
每个链接都使用之前的链接与之前的链接相关联.
最后一个链接带有一个null链接以标记列表的结尾.
基本操作
以下是列表支持的基本操作.
插入 : 在列表的开头添加一个元素.
删除 : 删除列表开头的元素.
插入最后一个 : 在列表末尾添加一个元素.
删除最后一个 : 从列表末尾删除元素.
插入后 : 在列表项之后添加元素.
删除 : 使用键从列表中删除元素.
显示前进 : 以向前的方式显示完整列表.
向后显示 : 以反向方式显示完整列表.
插入操作
以下代码演示插入在双向链表的开头操作.
示例
//insert link at the first locationvoid insertFirst(int key, int data) { //create a link struct node *link = (struct node*) malloc(sizeof(struct node)); link->key = key; link->data = data; if(isEmpty()) { //make it the last link last = link; } else { //update first prev link head->prev = link; } //point it to old first link link->next = head; //point first to new first link head = link;}
删除操作
以下代码演示了双向链表开头的删除操作.
示例
//delete first itemstruct node* deleteFirst() { //save reference to first link struct node *tempLink = head; //if only one link if(head->next == NULL) { last = NULL; } else { head->next->prev = NULL; } head = head->next; //return the deleted link return tempLink;}
在操作结束时插入
以下代码演示了最后的插入操作双向链表的位置.
示例
//insert link at the last locationvoid insertLast(int key, int data) { //create a link struct node *link = (struct node*) malloc(sizeof(struct node)); link->key = key; link->data = data; if(isEmpty()) { //make it the last link last = link; } else { //make link a new last link last->next = link; //mark old last node as prev of new link link->prev = last; } //point last to new last node last = link;}
免责声明:以上内容(如有图片或视频亦包括在内)有转载其他网站资源,如有侵权请联系删除
-
TV动画《入间同学入魔了》第三季制作确认 将于10月播出
根据西修原作制作的TV动画《入间同学入魔了》第三季宣布了将于2022年10月播出的消息。本作的宣传图也一并公开。在这次的新宣传图上,可以看到主人公入间和新角色巴巴托斯的样子。 《入间同学入魔了》作品讲述了被父母卖给了恶魔的14岁少年铃木入间在魔界学园生活的故事。TV动画第一季和第二季分别在20
-
华硕Z690主板发布 12代酷睿致胜神装
-
S9:ISGvsSPY 欧洲蛇咬下大白鲨赢得小组第一名!
{@SYS-PAGE-SPLIT@}
-
韩国画师冷门动物拟人作品
-
《幻塔》开服福利少?别被骗了 游戏里藏着大量白给的好东西
-
克苏鲁+伊藤润二《恐怖世界》2023年夏季推出1.0版 并登陆主机
-
iPhone15ProMax预计售价2万块,网曝有这些改变