首页 > 其他分享 >[数据结构]双向链表(C语言)

[数据结构]双向链表(C语言)

时间:2023-01-17 22:01:26浏览次数:42  
标签:node head C语言 Duplist next 链表 prior 数据结构 节点

双向链表

双向链表概念

双向链表也叫双链表,其每个数据结点中都有两个指针,分别指向直接后继和直接前驱。在单向链表中若要找到某个节点的前驱节点,需要先遍历到这个节点,然后再遍历一次找到其前驱节点,这无疑是十分低效的。而双向链表可以做到正向反向遍历,由此相比单向链表可以更高效地找到某个节点的前驱节点。



双向链表的创建

双向链表的节点构成

双向链表的单个节点含有两个指针域,一个值域。

结构体

typedef int Elemtype;

typedef struct Node {

    Elemtype data;
    struct Node *prior;      //前驱指针
    struct Node *next;       //后驱指针

} Duplist;

双向链表的初始化创建

双向链表基本上就是在单向链表的基础上多了一个前驱指针,用类似的方式建立每个节点与前驱之间关系就可以了

标签:node,head,C语言,Duplist,next,链表,prior,数据结构,节点
From: https://www.cnblogs.com/MAKISE004/p/17058633.html

相关文章

  • 【LeetCode链表#9】图解:两两交换链表节点
    两两交换链表中的节点力扣题目链接(opensnewwindow)给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节......
  • 数据结构:第六章图
    数据结构:第六章图6.1图的概述完全图n个顶点的无向图中边数达到n(n-1)/2成为无向完全图n个顶点的有向图中遍数达到n(n-1)有向图的完全图6.3图的遍历广度优先BFS深度优先,类似......
  • 二级C考点:程序设计和C语言
    1.c程序的编译过程c编译程序把.c(源程序)–.obj(目标程序)–再由链接将一个或者多个目标程序文件与程序用到库文件连接起来,形成一个可在操作系统直接运行的可执行程序.exe.2.简......
  • 简单常见笔试算法,C语言实现
    1:输出九九乘法表#include<stdio.h>intmain(){inti,j;for(i=1;i<10;i++){for(j=1;j<=i;j++){printf("%d*%d=%d",i,j,i*j);}printf("\n");}}2:有......
  • 简单常见笔试算法,C语言实现2
    10:插入一个数,排序仍然成立#include<stdio.h>#include<string.h>intmain(){inti,j,num;inttmp,tmp2;inta[10]={1,2,3,4,5,6};printf("inputnum\n");scanf("%d......
  • Python画圣诞树看多了,挑战用C语言画一个?【圣诞快乐】
    ......
  • 数据结构 玩转数据结构 9-4 线段树中的区间查询
    0课程地址https://coding.imooc.com/lesson/207.html#mid=13846 1重点关注1.1线段树区间查询见3.1  2课程内容  3......
  • C语言
    指针与一维数组函数调用的本质是值传递数组传递是弱化为指针如果指针变量已指向数组中的一个元素,则p+1指向同一数组的下一个元素,执行p+1并不是将p的值(地址)加1,而是加上......
  • C语言bool类型
    C89没有定义布尔类型,所以C语⾔判断真假时以0为假,⾮0为真。所以我们通常使⽤逻辑变量的做法:1//宏定义布尔类型23#defineBOOLint45#defineTRUE167......
  • 采用C语言写文本文件实例
    今天有同事的写文本文件时出了些问题,我查看了下,她的代码对于句柄的处理有些问题。每次打开后,没有close掉。经改正后,解决了问题。为了避免更多的同行避免这样的低级问题,我写......