数据结构---循环链表

news/2024/11/13 4:26:38/

数据结构—循环链表

循环单链表

typedef struct LNode
{ElemType data;struct LNode* next;
}LNode, *LinkList;

循环单链表初始化

bool InitList(LinkList &L)
{L = (LNode*)malloc(sizeof(LNode));if (L == NULL)  return false;L->next = L;	//头结点next指向头结点return true;
}

判断循环单链表是否为空

bool Empty(LinkList L)
{return L->next == L;
}

判断结点p是否为循环单链表的表尾结点

bool IsTail(LinkList L, LNode* p)
{return p->next == L;
}

很多时候对链表的操作都是在头部或尾部
这时候就可以显现出循环链表的方便性

从头结点找到尾部,时间复杂度为O(n)
从尾部找到头部,时间复杂度为O(1)

循环双链表

typedef struct DNode
{ElemType data;struct DNode *next, *prior;
}DNode, *DLinkList;

循环双链表的初始化

bool InitDLinkList(DLinkList &L)
{L = (DNode*)malloc(sizeof(DNode));if (L == NULL)  return false;L->next = L; ///头结点的next指向头结点L->prior = L; //头结点的prior指向头结点return true;
}

判断循环双链表是否为空

bool Empty(DLinkList L)
{return L->next == L;
}

判断结点p是否为循环双链表的尾结点

bool IsTail(DLinkList L, DNode* p)
{return p->next == L;
}

在p结点之后插入s结点

bool InsertNextDNode(DNode* p, DNode* s)
{s->next = p->next;s->prior = p;p->next->prior = s;p->next = s;
}

删除p的后继结点q

p->next = q->next;
q->next->prior = p;
free(q);

知识点回顾与重要考点


http://www.ppmy.cn/news/629732.html

相关文章

PE工具清除Windows10笔记本开机密码忘记

1.准备一个2G以上的U盘,下载大白菜之类的制作U盘启动盘; 2.将制作好的U盘启动盘插入到忘记密码的电脑上,重启笔记本,按住F12,选择USBHDD移动到第一位,然后按F10保存退出即可,再重启电脑时U盘就会…

【硬件】显示器接显卡上开机不显示 BIOS 界面,直接进入 windows。显示器接主板上则显示BIOS界面。

【解决方法】 1)显示器接主板上, 2)修改BIOS设置:Advance > VGA Priority > offboard,如图, 3)显示器接回显卡,开机显示 BIOS 界面。

笔记本加装固态安装win10和Ubuntu双系统

安装固态 笔记本拆机加固态 http://www.jb51.net/softjc/469814.html 需要注意的地方是笔记本后改拆下来以后要先把电池的电源断开,装完固态后再把电源的白色插头复位。 固态初始化和分区 http://www.upantool.com/jiaocheng/ssd/2014/6263.html 安装完成后&am…

十三.linux开发之uboot移植(十三)——三星官方uboot移植过程详解

2018/08/12 21:39 有道云地址:http://note.youdao.com/noteshare?id9ab91347c6ce1b15ef0c3fa8e8a60605&sub612AF77E36994945B6638F4B884E286C 太大了,这里就不高亮各处关键点了,详细查看有道云笔记。 一.VMware NAT方式 Ubuntu 14.04…

树莓派4B安装配置LibreELEC并连接到三星电视

由于以前购买的安卓机顶盒无法播放H265的片源,本着尽量利用手头资源的原则,就想把手头的树莓派4B利用起来替代原先的安卓盒子的Kodi。经过多日的折腾,终于搞定了,虽然后来电视坏掉了,但是还是应该做个记录。 硬件准备…

这两款明星手机的指纹支付功能,为什么被支付宝微信紧急叫停

号称最先进最安全的屏下指纹识别技术翻车了。 一对英国夫妇给三星S10手机套上硅胶套后,发现任何人的指纹都能轻易解锁手机,甚至可以用指纹登录到银行APP。 随后,三星官方承认S10和Note 10两款手机以及Tab S6平板的指纹识别确实存在漏洞&…

咋让计算机名字改为办公用计算机,让电脑变成历史:三星DeX将三星S8变成“办公电脑”...

最近两年,“生产力工具”和“轻办公”这俩词常被提起:微软的Surface、苹果的iPad Pro都在用这个作为卖点。 三星的表达方式,则是DeX,一个把手机变成”办公电脑“的底座,这个想法,跟其他两个对手都不太一样。…

新买的笔记本电脑怎么分盘_为什么许多手机厂商开始做笔记本电脑,真有这么大的市场前景?|手机|笔记本|电脑|笔记本电脑...

为什么许多手机厂商开始做笔记本电脑? 目前加入笔记本制造的企业应该是这么几家,苹果、三星、华为、小米、荣耀、红米,其他的还没有见到入局者,我预估oppo或者vivo要快了,为什么他们会盯着笔记本的市场?第一…