![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 82
数据结构基础
究极无敌暴龙战神X
这个作者很懒,什么都没留下…
展开
-
10.4数据结构
创建链表之头插法和尾插法头插法:1.从有空表开始,重复读入数据2.生成新结点,将读入的数据存放到新结点的数据域中3.从最后一个结点开始,依次将各个结点插入到链表的前端//创建链表,头插法void CreateList(LinkList &L,int n) { L = (LinkList)malloc(sizeof(LNode)); //L=new LNode; int i; LinkList p; L -> next =...原创 2021-10-05 01:58:41 · 17 阅读 · 0 评论 -
13图的最小生成树
2、采用书上第 161 页定义的图的邻接矩阵存储表示,编程实现构造最小生成树的 Kruskal 算法。1、采用书上第 161 页定义的图的邻接矩阵存储表示,编程实现构造最小生成树的 Prim 算法。⑵ 基于所设计的存储结构实现图的最小生成树算法。⑶ 编写主函数对所实现的图的最小生成树进行测试。实验 十 三 图的最小生成树算法实现。⑵ 掌握图的邻接矩阵存储结构设计。⑴ 定义图的邻接矩阵存储表示。⑴ 熟悉图的定义和基本操作。⑶ 掌握图的最小生成树算法。原创 2023-07-16 21:36:51 · 73 阅读 · 0 评论 -
16排序算法的实现和比较
是一种原地排序算法,与冒泡排序相比,交换位置的操作改为了赋值操作,执行效率会提高。页定义的记录顺序存储表示,编程实现下列排序算法,并比较算法的优缺点。不是稳定的排序算法,因为每次找到最小的值后会进行交换位置的操作。有提前终止循环的情况,如果是面对近似有序的数组,效率奇高。分区点的选择有讲究,选择不当时最坏情况会退化为O(n²)。原地排序不占额外空间,没有交换位置的操作执行效率高。原地排序,只需要占用O(logn)的栈空间。最坏和最好情况都是O(n²)的复杂度。是一种稳定的排序算法。不是稳定的排序算法。原创 2023-07-16 21:33:36 · 56 阅读 · 0 评论 -
15二叉排序树的实现
通过本次实验,我熟悉二叉排序树的定义和基本操作,掌握二叉排序树的链式存储结构设计与基本操作的实现。页定义的二叉链表存储表示,编程实现二叉排序树的下列基本操作。⑵ 掌握二叉排序树的链式存储结构设计与基本操作的实现。⑴ 熟悉二叉排序树的定义和基本操作。原创 2023-07-16 21:32:54 · 93 阅读 · 0 评论 -
12图的创建和遍历
/插入链表G.vertices[i]cout << "请输入图的种类:0表示DG,1表示DN,2表示UDG,3表示UDN" << endl;cout << "输入第" << k + 1 << "条边的两个顶点:" << endl;cout << "输入第" << k + 1 << "条边的两个顶点:" << endl;cout << "输入第" << k + 1 << "条边的两个顶点:" << endl;cout << "输入第" << k + 1 << "条边的两个顶点:" << endl;原创 2023-07-16 21:31:29 · 61 阅读 · 0 评论 -
11赫夫曼编码的存储表示和实现
页定义的赫夫曼树和赫夫曼编码的存储表示,编程实现从叶子到根逆向求赫夫曼编。⑵ 掌握赫夫曼树的存储结构设计与赫夫曼编码的实现。⑴ 熟悉赫夫曼树的定义和基本操作。码和从根到叶子求赫夫曼编码。原创 2023-07-12 12:58:59 · 81 阅读 · 0 评论 -
09线索二叉树的创建和遍历
页定义的线索二叉树的线索链表存储表示,编程实现线索二叉树的下列基本操作。通过先序、中序、后序二叉树的线索化,更加理解了二叉树的遍历过程和算法,创建线索二叉树,按先序次序输入线索二叉树中的结点的值:"创建线索二叉树,按先序次序输入线索二叉树中的结点的值:"创建线索二叉树,按先序次序输入线索二叉树中的结点的值:"先序遍历线索二叉树,结果是:"中序遍历线索二叉树,结果是:"后序遍历线索二叉树,结果是:")建立后序线索二叉树。)建立先序线索二叉树。)先序遍历线索二叉树。)中序遍历线索二叉树。)后序遍历线索二叉树。原创 2023-07-12 12:58:13 · 133 阅读 · 0 评论 -
08二叉树的创建与遍历
中序遍历的非递归算法的基本思想:1.建立一个栈 2.根节点进栈,遍历左子树 3.根节点出栈,输出根节点,遍历右子树。二叉树中序遍历的非递归算法的关键:在中序遍历过某结点的整个左子树后,任何找到该结点的跟以及右子树。Status PostOrderTraverse(BiTree T){//后续。Status PreOrderTraverse(BiTree T){//前序。Status InOrderTraverse(BiTree T){//中序。原创 2023-07-12 12:57:23 · 107 阅读 · 0 评论 -
07 数组的存储表示和实现
注意:数组可以多维的,但存储数据元素的内存单元地址是一维的。数组的基本操作:除了结构的初始化和销毁之外,只有取元素和修改元素值的操作。结论:线性表结构是数组结构的一个特例,而数组结构又是线性表结构的扩展。一维数组:若线性表中的数据元素为非结构的简单元素,则称为一维数组。三维数组:若二维数组中的元素又是一个一维数组,则称作三维数组。二维数组:若一维数组中的数据元素又是一维数组,则称为二维数组。页定义的数组的顺序存储表示,编程实现数组的下列基本操作。数组:按一定格式排列起来的,具有相同类型的数据元素的合集。原创 2023-07-12 12:56:01 · 67 阅读 · 0 评论 -
06 串的存储表示和实现
(5)求子串 (6)复制串 (7)串插入 (8)串删除。3、采用书上第73页定义的串的定长顺序存储表示,编程实现串的模式匹配算法及其改进算法。1、采用书上第73页定义的串的定长顺序存储表示,编程实现串的下列基本操作。2、采用书上第75页定义的串的堆分配存储表示,编程实现串的下列基本操作。串的存储表示和实现,对串的应用有了更深刻的感悟与领会。输出串S的子串Sub的开始字符位置:"将串T的值复制到串S中,串S的值为:"输出串S1和串S2的联接串T的值:"原创 2023-07-12 12:54:59 · 82 阅读 · 0 评论 -
05 队列的存储表示和实现
int front;cout << "输入" << n << "个插入队列的元素的值:" << endl;cout << "输入" << n << "个插入队列的元素的值:" << endl;cout << "输出第1个删除的队头元素的值:" << a << endl;cout << "输出第2个删除的队头元素的值:" << a << endl;cout << "输出第1个删除的队头元素的值:" << a << endl;cout << "输出第2个删除的队头元素的值:" << a << endl;原创 2023-07-12 12:53:33 · 38 阅读 · 0 评论 -
04 栈的实现和应用
2、采用栈的顺序存储表示,编程实现表达式中圆括号“( )”和方括号“[ ]”匹配的检验。若栈不空,则删除S的栈顶元素,用e返回其值,并返回OK;1、采用书上第 46 页定义的栈的顺序存储表示,编程实现栈的下列基本操作。(1)初始化顺序栈 (2)创建顺序栈 (3)判断栈空 (4)输出顺序栈。若栈不空,则从栈顶到栈底输出数据元素,返回OK;若栈不空,则从栈底到栈顶输出数据元素,返回OK;若栈不空,则用e返回S的栈顶元素,并返回OK;输出%d个入栈元素的值:\n"输出入栈后的顺序栈元素:\n"原创 2023-07-12 12:51:34 · 42 阅读 · 0 评论 -
03 线性表的存储和其它操作
他们的作用都是动态分配内存。输出单链表第2个位置元素到dd!:在内存的动态存储区中分配一块长度为“”字节的连续区域,返回该区域的首地址。从表尾到表头逆向创建n个元素的单链表。输出插入操作后单链表所有元素!输出删除操作后单链表所有元素!在单链表第4个位置插入%d!删除单链表第3个位置的元素!创建单链表,输入5个元素:\n"请输入10个线性表中的元素:"”字节的连续区域,返回首地址。输出单链表所有元素!:在内存的动态存储区中分配。请输入10个链表元素:"输出排序后的顺序表:"输出排序后的链表:"原创 2023-07-12 12:50:44 · 77 阅读 · 0 评论 -
02 线性链表的实现和应用
归并 (直接连接La,Lb所有节点至Lc,原La,Lb被释放)输出单链表第2个位置元素到dd!从表尾到表头逆向创建n个元素的单链表。输出插入操作后单链表所有元素!输出删除操作后单链表所有元素!在单链表第4个位置插入%d!删除单链表第3个位置的元素!均与L->next交换,逆序插入。创建单链表,输入5个元素:\n"合并La,Lb至Lc:\n"输出单链表所有元素!原La头节点赋值给Lc。剩余部分仍保持连接状态。原创 2023-07-12 12:49:23 · 42 阅读 · 0 评论 -
01顺序表的实现和应用
提示:要实现算法 2.4 和 2.5,必须先创建 n 个数据元素的顺序表,另外输出顺序表的操作也是必要的。3、采用线性表动态分配顺序存储结构,实现顺序表的合并操作:①设有线性表 La 和 Lb,试设计算法将。(5)输出顺序表 (6)取顺序表位置 i 的元素值 (7)在顺序表中查找值为 e 的元素位置。(1)初始化顺序表 (2)创建顺序表 (3)判断空表 (4)求顺序表长度。⑷ 线性表的应用:编程实现顺序表的合并。元素%d在顺序表的位置为:%d\n"输出插入操作后顺序表所有元素!删除顺序表第3个位置的元素!原创 2023-07-12 12:47:48 · 77 阅读 · 0 评论