栈 相关概念 栈是一种特殊的线性表 只允许在固定的一端进行插入和删除元素操作。 进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。 原则:后进先出LIFO(Last In First Out) 压栈:栈的插入操作,入数据在栈顶 出栈:栈的删除操作,出数据也在栈顶 我们来实现自己的栈,首先用数组来 ...
分类:
其他好文 时间:
2020-06-14 11:14:49
阅读次数:
56
顺序表 线性表的第一个儿子 这个儿子的结构体定义: typedef int ElemType;//取别名 typedef struct link{ ElemType * head;//head是一个数组指针,不太清楚的同学,可以百度一下 ElemType length; ElemType size; ...
分类:
编程语言 时间:
2020-06-14 01:23:40
阅读次数:
81
一、图的概念 (1)图的定义: 图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。注意:线性表中可以没有元素,称为空表。树中可以没有结点,叫做空树。但是在图中不允许没有顶点,可以没有边。 (2)图的基 ...
分类:
其他好文 时间:
2020-06-13 21:01:33
阅读次数:
48
1.顺序存储结构不足的解决办法 线性表的顺序存储结构就是插入和删除时,需要移动大量元素 问题的根源在于:相邻的两个数据元素的存储位置具有邻居关系 插入操作,为了保持原有的数据元素的相邻关系,插入位置之后的数据元素以此往后移动。 删除操作,所删元素留下的空隙自然需要你补,数据元素要往前移动。 解决办法 ...
分类:
其他好文 时间:
2020-06-11 21:44:20
阅读次数:
51
1. 定义 线性表:零个或者多个数据元素的有限序列 它是一个序列,元素之间是有顺序的 a1,a2,ai-1,ai,ai+1...an i=1,有且仅有一个直接后继元素 i=[2,n]有且仅有一个直接前驱元素 当n=0,为空表 有限性,事实上,计算机处理的元素都是有限的,无限数列只存在数学概念中 举例 ...
分类:
其他好文 时间:
2020-06-11 13:38:53
阅读次数:
60
线性表: 数据排成一条线一样的机构,每个线性表上的数据最多只有前后两个方向, 包括 数组,链表,队列,栈。 非线性表 : 数据之间并不是简单的前后关系,有二叉树、图等。 散列表(基于 数组支持按照下标访问数据的特性,是数组的一种扩展) 通过散列函数把元素的键值 映射为 下标,然后将数据存储在数组中对 ...
分类:
其他好文 时间:
2020-06-09 20:44:42
阅读次数:
61
一、背景 栈和队列是数据结构中最常用到的两种结构,有非常广泛的运用,该篇文章将通过动画的手段,展示栈和队列相互实现的底层原理,让我们真正搞懂栈和队列的特性。 二、概念 2.1 栈 栈[Stack]:是一种限定仅在表尾进行插入和删除操作的线性表;即后进先出(LIFO-last in first out ...
分类:
其他好文 时间:
2020-06-09 18:34:08
阅读次数:
68
周数 专业学习目标 专业学习时间 新增代码 博客发表量 知识技能总结 第八周 掌握数据结构与算法 6h 150h 1 了解二叉树的创建与遍历的递归思想 第九周 掌握数据结构与算法 8h 130h 1 掌握二叉树的查找 第十周 掌握数据结构与算法 7h 160h 1 学习l哈尔曼树 第十一周 掌握数据 ...
分类:
其他好文 时间:
2020-06-09 16:32:16
阅读次数:
47
一、线性表 线性表的特征: 第一个元素没有前驱,这个元素称为头节点 最后一个数据元素没有后继,成为尾节点 除了第一个和最后一个元素外,其他元素有且仅有一个前驱后后驱。 线性表分类: 顺序存储 链式存储 1.1顺序表 1.1.1顺序表的实现 ...
分类:
其他好文 时间:
2020-06-08 23:37:55
阅读次数:
51
链表操作 在c语言里我们通过结构体和数组这两种数据结构构造线性表 创建顺表表-数组静态分配内存 typedef struct { char data[10]; int length; }SqList; bool ListInsert(SqList &L,int i,char e){ for (int ...
分类:
编程语言 时间:
2020-06-08 19:18:56
阅读次数:
101