随笔分类 - 数据结构
摘要:#include //广义表的头尾链表存储结构 typedef int AtomType; typedef enum NodeType{ATOM,LIST}ElemTag;//ATOM表示原子结点,LIST表示表节点 typedef struct GLNode{ ElemTag tag; union{ AtomType atom; struct List{ struct GL...
阅读全文
摘要:数组本身就是一种数据结构,他是对线性表的一种扩充数组主要用于对矩阵的压缩和表示 一.特殊矩阵的压缩 二.稀疏矩阵的压缩 1.三元组表示法: 三元组表示法下的稀疏矩阵转置 二.稀疏矩阵的链式存储结构:十字链表 建立十字链表
阅读全文
摘要:数据结构重新学习到现在,已经学习了线性表,链表,栈,队列,串等大概5个方面的内容,还有数组与广义表,树与二叉树,图,查找,内部排序大概5个方面的内容,也就是说,大概学了一半了,数据结构有望成为继C语言后第二个转型成功的底蕴基础课程了,恩恩,然后还有C++,算法
阅读全文
摘要:串分为顺序串,堆串,快链串三种 恩,这是大概的实现,具体的以后再说
阅读全文
摘要:循环队列采用顺序存储的方式(数组),基本思想是通过一个数组存储数据,两个下标front和rear分别指向队头和队尾 由于假溢出现象:采用循环队列,又由于循环队列无法判断队列是空还是满,所以采用损失一个元素为空的代价来分别队列为空还是为满 与链队列不同的是: 循环队列的队头指针(下标)不是指向什么头结
阅读全文
摘要:链队列采用带头结点的链表,队头指针始终指向头结点,队尾指针始终指向最后一个元素 当队列为空时:队头指针和队尾指针均指向头结点 链队列不会满!!! 链队列的定义: 1.定义一种结点结构体:指针域指向下一个结点,数据域存储数据 2.定义链队列结构体:分别存储两个结点指针,队头指针和队尾指针 链队列的初始
阅读全文
摘要:首先,队列,是一种限定性的线性表 它允许在表的一端插入元素,在表的另一端删除元素,允许插入的一端叫做队尾,允许删除的一端叫做队头 特性:先进先出 进:队尾 出:队头 按照顺序存储和链式存储两种存储方式,队列大概有两种: 链队列和循环队列
阅读全文
摘要:前面经说过,根据存储结构的不同,将栈分为顺序栈和链栈 链栈按照链式存储结构存储 链栈原理和理解 由于栈的删除和插入操作仅限制在表头进行,所以链表的表头指针(指向头结点)就作为栈顶指针(便于方便直接使用带头结点的链表) 因此,若top(表头指针,栈顶指针)->next=NULL,则链栈为空 整个理解过
阅读全文
摘要:多栈共享技术的应用:经常会发生一个程序使用多个栈的情况,然而若使用顺序栈,因为难以对每个栈的空间准确估计,所以会发生有的栈已经溢出,有的栈却还很空闲的状况,解决方案是:可以让多个栈共享一个足够大的数组空间,通过利用栈的动态特性来使其存储空间相互补充,这就是多栈的共享技术 双端栈: 首先申请一个共享的
阅读全文
摘要:栈作为一种特殊的线性表,在计算机中有顺序储存结构和链式存储结构两种存储结构,根据这个我们把栈分为顺序栈和链栈 顺序栈 栈顶:用top来动态地表示栈顶元素在顺序栈中的位置,当top=-1时表示栈为空 这个是栈这个数据类型的定义 用一个数组来存储数据,对应的下标表示他在栈中的位置,top表示栈顶元素对应
阅读全文
摘要:首先, 栈是一种限定性线性表,即他首先是一种线性表,一种特殊的线性表 特殊:将线性表的插入和删除操作限制为仅在表的一端进行 栈顶:将表中允许进行插入和删除操作的一端称为栈顶,(一般动态变化) 栈底:表的另一端称为栈底 空栈:表中没有元素 入栈:栈的插入操作(进栈) 出栈:栈的删除操作(退栈) 关键原
阅读全文

浙公网安备 33010602011771号