
王道数据结构
Mix Mind
这个作者很懒,什么都没留下…
展开
-
王道数据结构2022-线性表的链式表示-综合题(p41)-20设头指针为L的带有表头结点的非循环双向链表,其每个结点中除有prior(前驱指针),data(数据)和next(后继指针)域外,还有一个访
设头指针为L的带有表头结点的非循环双向链表,其每个结点中除有prior(前驱指针),data(数据)和next(后继指针)域外,还有一个访问频度域freq.在链表被启用前,其值均初始化为零,每当在链表中进行一次Locate(L,x)运算时,令元素值为x的结点中freq域的值增1,并使此链表中结点保持按访问频度非增(递减)的顺序排列,同时最近访问的结点排在频度相同的结点前面,以便使频繁访问的结点总是靠近表头.试编写符合上述要求的Locate(L,x)运算的算法,该运算为函数过程,返回找到结点的地址,类型为指针原创 2021-08-29 22:30:40 · 2580 阅读 · 2 评论 -
王道数据结构2022-线性表的链式表示-综合题(p41)-19设有一个带头结点的循环单链表,其结点值均为正整数,设计一个算法,反复找出单链表中结点值最小的结点并输出,然后将该结点从中删除,直到单链表空
设有一个带头结点的循环单链表,其结点值均为正整数,设计一个算法,反复找出单链表中结点值最小的结点并输出,然后将该结点从中删除,直到单链表空为止,再删除表头结点#include<stdio.h>#include<stdlib.h>typedef int ElemType;typedef struct LNode { //定义单链表结点类型 ElemType data;//数据域 struct LNode *next;//指针域} LNode, *LinkList;原创 2021-08-29 22:26:06 · 1020 阅读 · 0 评论 -
王道数据结构2022-线性表的链式表示-综合题(p41)-18有两个循环单链表,链表头指针分别为h1和h2,编写一个函数将链表h2链接到链表h1之后,要求链接后的链表仍保持循环链表形式
有两个循环单链表,链表头指针分别为h1和h2,编写一个函数将链表h2链接到链表h1之后,要求链接后的链表仍保持循环链表形式#include<stdio.h>#include<stdlib.h>typedef int ElemType;typedef struct LNode { //定义单链表结点类型 ElemType data;//数据域 struct LNode *next;//指针域} LNode, *LinkList;/*有两个循环单链表,链表头指针分别原创 2021-08-29 22:24:39 · 511 阅读 · 0 评论 -
王道数据结构2022-线性表的链式表示-综合题(p41)-17设计一个算法用于判断带头结点的循环双链表是否对称
设计一个算法用于判断带头结点的循环双链表是否对称#include<stdio.h>#include<stdlib.h>typedef struct DNode { //定义双链表结点类型 int data;//数据域 struct DNode *prior,*next;//指针域} DNode, *DLinkList;/*设计一个算法用于判断带头结点的循环双链表是否对称*//*算法思想:让p从左向右扫描,q从右向左扫描,直到他们指向同一结点(p==q,当循环原创 2021-08-29 22:23:32 · 532 阅读 · 0 评论 -
王道数据结构2022-线性表的链式表示-综合题(p41)-16两个整数序列A=a1,a2,a3,...,am和B=b1,b2,b3,...,bn已经存入两个单链表中,设计一个算法,判断序列B是否是序列
两个整数序列A=a1,a2,a3,…,am和B=b1,b2,b3,…,bn已经存入两个单链表中,设计一个算法,判断序列B是否是序列A的连续子序列#include<stdio.h>#include<stdlib.h>typedef struct LNode { //定义单链表结点类型 int data;//数据域 struct LNode *next;//指针域} LNode, *LinkList;/*两个整数序列A=a1,a2,a3,...,am和B=b1,b2,b原创 2021-08-29 22:22:28 · 2397 阅读 · 0 评论 -
王道数据结构2022-线性表的链式表示-综合题(p41)-15已知两个链表A和B分别表示两个集合,其元素递增排列,编制函数求A与B的交集,并存放于A链表中
已知两个链表A和B分别表示两个集合,其元素递增排列,编制函数求A与B的交集,并存放于A链表中#include<stdio.h>#include<stdlib.h>typedef struct LNode { //定义单链表结点类型 int data;//数据域 struct LNode *next;//指针域} LNode, *LinkList;/*已知两个链表A和B分别表示两个集合,其元素递增排列,编制函数求A与B的交集,并存放于A链表中*//*算法思想:原创 2021-08-29 22:20:51 · 497 阅读 · 0 评论 -
王道数据结构2022-线性表的链式表示-综合题(p41)-14设A和B是两个单链表(带头结点),其中元素递增有序,设计一个算法从A和B中的公共元素产生单链表C,要求不破坏A,B的结点
设A和B是两个单链表(带头结点),其中元素递增有序,设计一个算法从A和B中的公共元素产生单链表C,要求不破坏A,B的结点#include<stdio.h>#include<stdlib.h>typedef struct LNode { //定义单链表结点类型 int data;//数据域 struct LNode *next;//指针域} LNode, *LinkList;/*设A和B是两个单链表(带头结点),其中元素递增有序,设计一个算法从A和B中的公共元素产生原创 2021-08-29 22:19:11 · 720 阅读 · 0 评论 -
王道数据结构2022-线性表的链式表示-综合题(p41)-13 假设有两个按元素值递增次序排列的线性表,均已单链表的形式存储请编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表并要求利用原来
假设有两个按元素值递增次序排列的线性表,均已单链表的形式存储请编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表并要求利用原来两个单链表的结点存放归并后的单链表#include<stdio.h>#include<stdlib.h>typedef struct LNode { //定义单链表结点类型 int data;//数据域 struct LNode *next;//指针域} LNode, *LinkList;/*假设有两个按元素值递增次序排列的线性表,原创 2021-08-29 22:17:43 · 1849 阅读 · 0 评论 -
王道数据结构2022-线性表的链式表示-综合题(p41)-12在一个递增有序的线性表中,有数值相同的元素存在.若存储方式为单链表,设计算法去掉数值相同的元素,使表中不再有重复的元素,例如(7,10,1
在一个递增有序的线性表中,有数值相同的元素存在.若存储方式为单链表,设计算法去掉数值相同的元素,使表中不再有重复的元素,例如(7,10,10,21,30,42,42,42,51,70)将变为(7,10,21,30,42,51,70)#include<stdio.h>#include<stdlib.h>typedef struct LNode { //定义单链表结点类型 int data;//数据域 struct LNode *next;//指针域} LNode, *Li原创 2021-08-29 22:16:23 · 853 阅读 · 0 评论 -
王道数据结构2022-线性表的链式表示-综合题(p41)-11设C={a1,b1,a2,b2,...,an,bn}为线性表,采用带头结点的hc单链表存放, 设计一个就地算法,将其拆分为两个线性表, 使
设C={a1,b1,a2,b2,…,an,bn}为线性表,采用带头结点的hc单链表存放,设计一个就地算法,将其拆分为两个线性表,使得A={a1,a2,…,an},B={bn,…b1}#include<stdio.h>#include<stdlib.h>typedef struct LNode { //定义单链表结点类型 int data;//数据域 struct LNode *next;//指针域} LNode, *LinkList;/*设C={a1,b1,a2,b原创 2021-08-29 22:14:19 · 1704 阅读 · 0 评论 -
王道数据结构2022-线性表的链式表示-综合题(p41)-10将一个带头结点的单链表A分解为两个带头结点的单链表A和B,使得A表中 含有原表中序号为奇数的元素,而B表中含有原表中序号为偶数的元素,而
将一个带头结点的单链表A分解为两个带头结点的单链表A和B,使得A表中含有原表中序号为奇数的元素,而B表中含有原表中序号为偶数的元素,而保持其相对顺序不变#include<stdio.h>#include<stdlib.h>typedef struct LNode { //定义单链表结点类型 int data;//数据域 struct LNode *next;//指针域} LNode, *LinkList;/*将一个带头结点的单链表A分解为两个带头结点的单链表A和B,原创 2021-08-28 16:42:19 · 375 阅读 · 0 评论 -
王道数据结构2022-线性表的链式表示-综合题(p41)-09给定一个带表头结点的单链表,设head为头指针,结点结构为(data,next),data 为整型元素,next为指针,试写出算法,按递增
给定一个带表头结点的单链表,设head为头指针,结点结构为(data,next),data为整型元素,next为指针,试写出算法,按递增次序输出单链表中各结点的数据元素,并释放结点所占的存储空间(要求:不允许使用数组作为辅助空间)#include<stdio.h>#include<stdlib.h>typedef struct LNode { //定义单链表结点类型 int data;//数据域 struct LNode *next;//指针域} LNode, *Lin原创 2021-08-28 16:40:56 · 1463 阅读 · 0 评论 -
王道数据结构2022-线性表的链式表示-综合题(p41)-08给定两个单链表.编写算法找出两个链表的公共结点
给定两个单链表.编写算法找出两个链表的公共结点#include<stdio.h>#include<stdlib.h>typedef struct LNode { //定义单链表结点类型 int data;//数据域 struct LNode *next;//指针域} LNode, *LinkList;/*给定两个单链表.编写算法找出两个链表的公共结点*///带头结点尾插法建立单链表LinkList List_TailInsert(LinkList &L原创 2021-08-28 16:39:20 · 480 阅读 · 1 评论 -
王道数据结构2022-线性表的链式表示-综合题(p41)-06设计一个带表头结点的单链表中所有元素结点的数据值无序,试编写一个函数,删除表中所有介于给定两个值(作为函数参数给出)之间的元素的元素(若存
设计一个带表头结点的单链表中所有元素结点的数据值无序,试编写一个函数,删除表中所有介于给定两个值(作为函数参数给出)之间的元素的元素(若存在)#include<stdio.h>#include<stdlib.h>typedef struct LNode { //定义单链表结点类型 int data;//数据域 struct LNode *next;//指针域} LNode, *LinkList;/*设计一个带表头结点的单链表中所有元素结点的数据值无序,试编写一个函原创 2021-08-28 16:37:34 · 355 阅读 · 0 评论 -
王道数据结构2022-线性表的链式表示-综合题(p41)-06有一个带头结点的单链表L,设计一个算法使其元素递增有序
有一个带头结点的单链表L,设计一个算法使其元素递增有序#include<stdio.h>#include<stdlib.h>typedef struct LNode { //定义单链表结点类型 int data;//数据域 struct LNode *next;//指针域} LNode, *LinkList;/*有一个带头结点的单链表L,设计一个算法使其元素递增有序*///带头结点尾插法建立单链表LinkList List_TailInsert(LinkLis原创 2021-08-28 16:35:18 · 920 阅读 · 0 评论 -
王道数据结构2022-线性表的链式表示-综合题(p41)-05试编写算法将带头结点的单链表就地逆置,所谓“就地“是这辅助空间的复杂度为O(1)
试编写算法将带头结点的单链表就地逆置,所谓"就地"是这辅助空间的复杂度为O(1)#include<stdio.h>#include<stdlib.h>typedef struct LNode { //定义单链表结点类型 int data;//数据域 struct LNode *next;//指针域} LNode, *LinkList;/*试编写算法将带头结点的单链表就地逆置,所谓"就地"是这辅助空间的复杂度为O(1)*///带头结点尾插法建立单链表LinkLi原创 2021-08-28 11:31:55 · 273 阅读 · 0 评论 -
王道数据结构2022-线性表的链式表示-综合题(p41)-04试编写在带头结点的单链表L中删除一个最小值结点的高效算法(假设最小值结点是唯一的)
试编写在带头结点的单链表L中删除一个最小值结点的高效算法(假设最小值结点是唯一的)#include<stdio.h>#include<stdlib.h>typedef struct LNode { //定义单链表结点类型 int data;//数据域 struct LNode *next;//指针域} LNode, *LinkList;/*试编写在带头结点的单链表L中删除一个最小值结点的高效算法(假设最小值结点是唯一的)*///带头结点尾插法建立单链表Link原创 2021-08-28 11:30:34 · 531 阅读 · 0 评论 -
王道数据结构2022-线性表的链式表示-综合题(p41)03-设L为带头结点的单链表,编写算法实现从尾到头反向输出每个结点的值
设L为带头结点的单链表,编写算法实现从尾到头反向输出每个结点的值#include<stdio.h>#include<stdlib.h>typedef struct LNode { //定义单链表结点类型 int data;//数据域 struct LNode *next;//指针域} LNode, *LinkList;//带头结点尾插法建立单链表LinkList List_TailInsert(LinkList &L) { //正向建立单链表 int原创 2021-08-27 11:42:37 · 1120 阅读 · 2 评论 -
王道数据结构2022-线性表的链式表示-综合题(p41)02-在带头结点的单链表L中,删除带头结点的单链表L中所有值为x的结点 并释放其空间,假设值为x的结点不唯一,试编写算法以实现上述操作
在带头结点的单链表L中,删除带头结点的单链表L中所有值为x的结点并释放其空间,假设值为x的结点不唯一,试编写算法以实现上述操作#include<stdio.h>#include<stdlib.h>typedef struct LNode { //定义单链表结点类型 int data;//数据域 struct LNode *next;//指针域} LNode, *LinkList;//带头结点尾插法建立单链表LinkList List_TailInsert(Lin原创 2021-08-27 11:12:03 · 343 阅读 · 0 评论 -
王道数据结构2022-线性表的链式表示-综合题(p41)01-设计一个递归算法,删除不带头结点的单链表L中所有值为x的结点
这里写自定义目录标题-设计一个递归算法,删除不带头结点的单链表L中所有值为x的结点运行效果-设计一个递归算法,删除不带头结点的单链表L中所有值为x的结点#include<stdio.h>#include<stdlib.h>typedef struct LNode { //定义单链表结点类型 int data;//数据域 struct LNode *next;//指针域} LNode, *LinkList;//带头结点尾插法建立单链表LinkList List_原创 2021-08-27 11:08:31 · 257 阅读 · 1 评论