数据结构
好用嘛,好用就好代码
一路向北
展开
-
C++将‘‘可变长数组类(CArray)“的类CArray改造成一个类模板
将''可变长数组类(CArray)"的类CArray改造成一个类模板原创 2023-08-25 07:31:57 · 44 阅读 · 0 评论 -
一个读者可以订阅一种或者几种报纸,根据提供的newscafe文件夹下的代码架构,补充代码功能,并验证结果。示例运行结果如下:Jill reads: The Times : Stormy weat
一个读者可以订阅一种或者几种报纸,根据提供的newscafe文件夹下的代码架构,补充代码功能,并验证结果。示例运行结果如下:Jill reads: The Times : Stormy weather!Jill reads: The Guardian : Bad news!Jack reads: The Guardian : Bad news!Jill reads: The Guardian : Good news!Jack reads: The Guardian : Good news!Jil原创 2023-08-26 00:02:34 · 32 阅读 · 0 评论 -
C++顺序表操作
已知顺序表L为按值递增有序的,编写算法将数据元素e插入到顺序表L中,使之仍有序。2、已知顺序表L为按值递增有序的,设计算法清除顺序表中多余重复元素,注意其删除位置之后的元素如何移动。3、顺序表LA和顺序表LB中的元素值无序,求出LA和LB的并集,结果存储在顺序表LC中。4、顺序表LA和顺序表LB中的元素值无序,求出LA和LB的交集,结果存储在顺序表LC中。5、顺序表LA和顺序表LB中的元素值无序,求出LA和LB的差集,结果存储在顺序表LC中。原创 2023-08-27 00:00:23 · 253 阅读 · 0 评论 -
C++设计有序单链表的基本运算
设计有序单链表的基本运算,主要功能函数如下,1)初始化有序单链表L。2)存放一组有序数,或产生一组随机数建立单链表并对单链表排序。3)求有序单链表L的长度。4)有序单链表L中取出第i个元素。5)定位函数,确定有序单链表L值为e元素的位置。6)在有序单链表L插入一个值为e的元素,使其仍有序。7)删除有序单链表L中所有值为e的元素。8)将有序单链表L中值为e元素修改值为e1,使其仍有序。9)将有序单链表L中属于区间[low,high]的数据取出存入新的有序单链表L1。10)有序单链表LA和有原创 2023-08-26 00:01:53 · 357 阅读 · 0 评论 -
C++将有序循环单链表rear中值为e元素修改值为new_e,使其仍有序
将有序循环单链表rear中值为e元素修改值为new_e,使其仍有序原创 2023-08-25 07:33:16 · 70 阅读 · 0 评论 -
设有一个双链表h,每个结点中除了有prior、data和next几个域以外,还有一个访问频度域freq,在链表被启用之前,其值均初始化为零。每当进行 Locatenode(h,x)运算时,令元素值为x
设有一个双链表h,每个结点中除了有prior、data和next几个域以外,还有一个访问频度域freq,在链表被启用之前,其值均初始化为零。每当进行 Locatenode(h,x)运算时,令元素值为x的结点中freq域的值加1,并调整表中结点的次序,使其按访问频度的递减次序排列,以便使频繁访问的结点总是靠近表头。试写一个符合上述要求的 Locatenode运算的算法原创 2023-08-25 07:33:08 · 601 阅读 · 0 评论 -
请设计一个队列,要求满足:①初始时队列为空;②入队时,允许增加队列占用空间;③出队后,出队元素所占用的空间可重复使用,即整个队列所占用的空间只增不减;④入队操作和出队操作的时间复杂度始终保持为O(1)
请设计一个队列,要求满足:①初始时队列为空;②入队时,允许增加队列占用空间;③出队后,出队元素所占用的空间可重复使用,即整个队列所占用的空间只增不减;④入队操作和出队操作的时间复杂度始终保持为O(1)原创 2023-08-26 00:03:02 · 575 阅读 · 0 评论 -
C++判断用户输入的中缀表达式是否合法(第一要求是各类括号是否匹配,第二要求是小点的括号中不能包含大点的括号,第三要求是整个表达式是否合法,根据自己能力选做),如果合法,计算结果并显示出来。表达式中的
判断用户输入的中缀表达式是否合法(第一要求是各类括号是否匹配,第二要求是小点的括号中不能包含大点的括号,第三要求是整个表达式是否合法,根据自己能力选做),如果合法,计算结果并显示出来。表达式中的符号为+、-、*、/、(、)、[、]、{、}。表达式中数字为整数原创 2023-08-27 00:00:52 · 388 阅读 · 2 评论 -
C++设计算法实现两个栈共享存储空间的基本运算,初始化initstack_d(&S),入栈push(&S,i,e),出栈pop(&S,i,&e)操作。注意两个不同栈顶指针的设置
设计算法实现两个栈共享存储空间的基本运算,初始化initstack_d(&S),入栈push(&S,i,e),出栈pop(&S,i,&e)操作。注意两个不同栈顶指针的设置原创 2023-08-27 00:01:05 · 243 阅读 · 0 评论 -
C++编写递归算法实现串的置换操作Replace( S, T, R), 即将串S中所有与串T相等的子串置换为串R
编写递归算法实现串的置换操作Replace( S, T, R), 即将串S中所有与串T相等的子串置换为串R原创 2023-08-25 07:33:38 · 370 阅读 · 0 评论 -
C++删除以L为首节点指针的单链表中值为x的所有节点
删除以L为首节点指针的单链表中值为x的所有节点原创 2023-08-25 07:33:24 · 127 阅读 · 0 评论 -
C++用递归实现x的n次方
用递归实现x的n次方原创 2023-08-25 07:33:50 · 888 阅读 · 0 评论 -
C++已知稀疏矩阵采用三元组表压缩存储,试编写算法求稀疏矩阵中所有数的平均数。已知稀疏矩阵采用十字链表压缩存储,试编写算法求稀疏矩阵中所有数的平均数。 试编写算法比较两个广义
1.已知稀疏矩阵采用三元组表压缩存储,试编写算法求稀疏矩阵中所有数的平均数。2.已知稀疏矩阵采用十字链表压缩存储,试编写算法求稀疏矩阵中所有数的平均数。。3.试编写算法比较两个广义表是否相等。原创 2023-08-27 00:00:36 · 162 阅读 · 0 评论 -
C++假设有向图采用邻接表存储。设计一个算法,判断有向图中是否存在回路
假设有向图采用邻接表存储。设计一个算法,判断有向图中是否存在回路原创 2023-08-27 00:01:18 · 481 阅读 · 0 评论 -
C++有向图以邻接矩阵存储,试编写图的基本运算(删除一条边、求某个顶点的出度)
有向图以邻接矩阵存储,试编写图的基本运算(删除一条边、求某个顶点的出度)原创 2023-08-27 00:01:53 · 262 阅读 · 0 评论 -
C++无向图以邻接表存储,试编写图的基本运算(输入两顶点序号插入边、输入两顶点序号查找是否存在边)
无向图以邻接表存储,试编写图的基本运算(输入两顶点序号插入边、输入两顶点序号查找是否存在边)原创 2023-08-27 00:01:31 · 212 阅读 · 0 评论 -
C++在hash-chain.cpp文件,完成函数void SearchHT(HashTable ha[],int m,KeyType k) //在哈希表中查找关键字k。在主函数中通过键盘输入一组
在hash-chain.cpp文件,完成函数void SearchHT(HashTable ha[],int m,KeyType k) //在哈希表中查找关键字k。在主函数中通过键盘输入一组数据。原创 2023-08-25 07:32:58 · 66 阅读 · 0 评论 -
C++已知二叉树b,编写算法判断其是否是二叉排序树
已知二叉树b,编写算法判断其是否是二叉排序树原创 2023-08-26 00:02:17 · 145 阅读 · 0 评论 -
C++利用递归方式编写算法实现二分查找
利用递归方式编写算法实现二分查找原创 2023-08-26 00:01:35 · 153 阅读 · 0 评论 -
C++假设有一个学生文件student.txt,包含n(n>100,实验时可不输入这么多)个学生的记录,每个学生记录包括学号、姓名、高等数学成绩、线性代数成绩、大学英语成绩、体育成绩。找出平均成
假设有一个学生文件student.txt,包含n(n>100,实验时可不输入这么多)个学生的记录,每个学生记录包括学号、姓名、高等数学成绩、线性代数成绩、大学英语成绩、体育成绩。找出平均成绩排名前5名的学生。原创 2023-08-25 07:32:38 · 178 阅读 · 0 评论 -
C++ 设计算法实现双向起泡排序。
设计算法实现双向起泡排序原创 2023-08-26 00:01:16 · 142 阅读 · 0 评论 -
数据结构作业——哈夫曼树
【代码】数据结构作业——哈夫曼树。原创 2023-08-21 17:03:38 · 608 阅读 · 0 评论 -
双链表的部分基本操作(声明、建表、插入、删除)
双链表的部分基本操作(声明、建表、插入、删除)原创 2023-08-15 21:42:41 · 158 阅读 · 0 评论 -
单链表递增排序
将带头结点的单链表L(至少带一个数据结点),将该单链表的所有数据结点按data递增排序,分析:带头结点的单链表L(至少带一个数据结点)肯定是有序的,然后遍历其余结点的数据,在有序的链表中找到插入点即可原创 2023-08-15 16:56:42 · 380 阅读 · 0 评论 -
单链表的拆分
注意:由于L1是继承L的头结点,故不需要对L1使用malloc,而L2没有头结点,则需要对其采用malloc创建一个头结点,头插法尤其要注意提前保留其插入或者删除结点的下一个结点的位置,避免链表之后的数据结点信息的丢失。原创 2023-08-14 19:04:07 · 283 阅读 · 0 评论 -
线性表的九个基本运算
线性表的基本运算在单链表中的实现原创 2023-08-14 12:08:46 · 636 阅读 · 0 评论 -
顺序表——奇数和偶数分区
利用一个顺序表L,假设元素的类型为ElemType为整型,设计一个尽可能高效的算法将所有奇数移到偶数前面。原创 2023-07-30 22:10:40 · 678 阅读 · 11 评论 -
顺序表——基准元素的快排划分(两种方法)
利用顺序表,尽可能设计一个高效的算法,以第一个元素为分界线(基准),将所有小于或等于它的元素移到该基准的前面,将所有大于它的元素移到该基准的后面。原创 2023-07-30 10:59:31 · 151 阅读 · 0 评论 -
数据结构第一次作业第一小问
/为什么加一,因为求的是长度,要在物理标识加一表示顺序表的长度。//想要再次用i这个变量,你也可以自己重新创建一个变量,由于其i的值之前已经改变,故重新归零。//根据得到的k值可以进行分配实际需要的顺序表空间(此处的分配当然不是用静态分配,用的是动态分配)//1、已知顺序表L为按值递增有序的,编写算法将数据元素e插入到顺序表L中,使之仍有序。//由于存在分配的空间和实际存储占用的空间不相符的情况(即数组a可能没有用完)//由于之前的k是统计的非空数组的个数,所以在此减一表示其物理标识。原创 2023-07-23 22:48:45 · 51 阅读 · 0 评论 -
顺序表算法设计方法
/所以可以排除的思路有:①每找到一个与x相等的元素都整体移动一次(原因:由于出现嵌套循环,故其时间复杂度至少为O(n^2),空间复杂度为O(1));//②临时新建一个顺序表存放不等于x的元素(原因:其新建一个顺序表使得空间复杂度为O(n),由于仅需遍历一次顺序表所以其时间复杂度为O(n))//除了以上的思路,还有一种通过遍历得到有多少个与x相等的元素个数决定元素移动的个数,让不等于x的后面元素覆盖其元素位置。//k是用来标记没有断片的位置的,i是记录遍历顺序表位置的。原创 2023-07-22 20:35:30 · 157 阅读 · 0 评论