随笔分类 -  数据结构c语言版

用于记录自己转升本数据结构的学习
第三章 栈和队列 ——队列的顺序表示和实现(6 )
摘要:利用一组连续的存储单元(一维数组) 依次存放从队首到队尾的各个元素,称为顺序队列。 对于队列,和顺序栈相类似,也有动态和静态之分。 本部分介绍的是静态顺序队列,其类型定义如下: 1 #define MAX_QUEUE_SIZE 100 2 typedef struct queue 3 { ElemT 阅读全文
posted @ 2022-01-17 22:59 拒绝bug 阅读(98) 评论(0) 推荐(0)
第三章 栈和队列 —— 队列及其基本概念(5)
摘要:1 队列的基本概念 队列(Queue):也是运算受限的线性表。 是一种先进先出(First In First Out ,简称FIFO)的线性表。 只允许在表的一端进行插入,而在另一端进行删除。 队首(front) :允许进行删除的一端称为队首。 队尾(rear) :允许进行插入的一端称为队尾。 例如 阅读全文
posted @ 2022-01-17 22:44 拒绝bug 阅读(92) 评论(0) 推荐(0)
第三章 栈和队列 ——栈的链式存储表示(4)
摘要:1 栈的链式表示 栈的链式存储结构称为链栈,是运算受限的单链表。 其插入和删除操作只能在表头位置上进行。 因此,链栈没有必要像单链表那样附加头结点,栈顶指针top就是链表的头指针。图3-4是栈的链式存储表示形式。 1 链栈的结点类型说明如下: 2 typedef struct Stack_Node 阅读全文
posted @ 2022-01-15 17:50 拒绝bug 阅读(64) 评论(0) 推荐(0)
第三章 栈和队列 ——栈的静态顺序存储表示(3)
摘要:一、定义 采用静态一维数组来存储栈。栈底固定不变的,而栈顶则随着进栈和退栈操作变化的, ◆ 栈底固定不变的;栈顶则随着进栈和退栈操作而变化,用一个整型变量top(称为栈顶指针)来指示当前栈顶位置。 ◆ 用top=0表示栈空的初始状态,每次top指向栈顶在数组中的存储位置。 ◆ 结点进栈:首先执行to 阅读全文
posted @ 2022-01-15 17:44 拒绝bug 阅读(84) 评论(0) 推荐(0)
第三章 栈和队列 ——栈的动态顺序存储表示(2)
摘要:一、定义 采用动态一维数组来存储栈。所谓动态,指的是栈的大小可以根据需要增加。 ◆ 用bottom表示栈底指针,栈底固定不变的;栈顶则随着进栈和退栈操作而变化。用top(称为栈顶指针)指示当前栈顶位置。 ◆ 用top=bottom作为栈空的标记,每次top指向栈顶数组中的下一个存储位置。 ◆ 结点进 阅读全文
posted @ 2022-01-15 17:37 拒绝bug 阅读(253) 评论(0) 推荐(0)
第三章 栈和队列 ——栈(1)
摘要:一、概念导入 栈和队列本质是一种操作受限的线性表 栈在计算机的实现有多种方式: ◆ 硬堆栈:利用CPU中的某些寄存器组或类似的硬件或使用内存的特殊区域来实现。这类堆栈容量有限,但速度很快; ◆ 软堆栈:这类堆栈主要在内存中实现。堆栈容量可以达到很大。在实现方式上,又有动态方式和静态方式两种。 二、栈 阅读全文
posted @ 2022-01-15 17:26 拒绝bug 阅读(102) 评论(0) 推荐(0)
第二章线性表——习题
摘要:1 简述下列术语:线性表,顺序表,链表。 2 何时选用顺序表,何时选用链表作为线性表的存储结构合适?各自的主要优缺点是什么? 3 在顺序表中插入和删除一个结点平均需要移动多少个结点?具体的移动次数取决于哪两个因素? 4 链表所表示的元素是否有序?如有序,则有序性体现于何处?链表所表示的元素是否一定要 阅读全文
posted @ 2022-01-13 22:15 拒绝bug 阅读(202) 评论(0) 推荐(0)
第二章线性表—— 一元多项式的表示和相加(7)
摘要:1 一元多项式的表示 一元多项式 p(x)=p0+p1x+p2x2+ … +pnxn ,由n+1个系数唯一确定。 则在计算机中可用线性表(p0 ,p1 ,p2 ,… ,pn )表示。 既然是线性表,就可以用顺序表和链表来实现。两种不同实现方式的元素类型定义如下 1 (1)顺序存储表示的类型 2 ty 阅读全文
posted @ 2022-01-13 22:13 拒绝bug 阅读(336) 评论(0) 推荐(0)
第二章线性表——双向链表(6)
摘要:1 双向链表的结点及其类型定义 双向链表的结点的类型定义如下。 其结点形式如图2-7所示,带头结点的双向链表的形式如图2-8所示。 ; 1 typedef struct Dulnode 2 { ElemType data ; 3 struct Dulnode *prior , *next ; 4 } 阅读全文
posted @ 2022-01-13 22:02 拒绝bug 阅读(119) 评论(0) 推荐(0)
第二章线性表——循环链表(5)了解
摘要:循环链表的操作 对于单循环链表,除链表的合并外,其它的操作和单线性链表基本上一致, 仅仅需要在单线性链表操作算法基础上作以下简单修改: ⑴ 判断是否是空链表:head->next==head ; ⑵ 判断是否是表尾结点:p->next==head ; 阅读全文
posted @ 2022-01-13 21:53 拒绝bug 阅读(75) 评论(0) 推荐(0)
第二章线性表——单线性链式的基本操作(4)
摘要:1 建立单链表 动态地建立单链表的常用方法有如下两种:头插入法,尾插入法。 ⑴ 头插入法建表 从一个空表开始,重复读入数据,生成新结点,将读入数据存放到新结点的数据域中, 然后将新结点插入到当前链表的表头上,直到读入结束标志为止。即每次插入的结点都作为链表的第一个结点。 1 算法描述:头插法 2 以 阅读全文
posted @ 2022-01-13 18:53 拒绝bug 阅读(237) 评论(0) 推荐(0)
第二章线性表——链式存储结构(3)
摘要:定义: 链式存储 :用一组任意的存储单元存储线性表中的数据元素。用这种方法存储的线性表简称线性链表。 存储链表中结点的一组任意的存储单元可以是连续的,也可以是不连续的, 甚至是零散分布在内存中的任意位置上的。 链表中结点的逻辑顺序和物理顺序不一定相同。 为了正确表示结点间的逻辑关系,在存储每个结点值 阅读全文
posted @ 2022-01-13 18:19 拒绝bug 阅读(77) 评论(0) 推荐(0)
第二章线性表——顺序存储结构(2)
摘要:一、定义 顺序存储 :把线性表的结点按逻辑顺序依次存放在一组地址连续的存储单元里。用这种方法存储的线性表简称顺序表。 顺序存储的线性表的特点: ◆ 线性表的逻辑顺序与物理顺序一致; ◆ 数据元素之间的关系是以元素在计算机内“物理位置相邻”来体现。 设有非空的线性表:(a1,a2,…an) 。顺序存储 阅读全文
posted @ 2022-01-12 22:55 拒绝bug 阅读(96) 评论(0) 推荐(0)
第二章线性表——线性表的定义(1)
摘要:一、线性结构,线性表就是一种典型的线性结构 ① 存在一个唯一的被称为“第一个”的数据元素; ② 存在一个唯一的被称为“最后一个”的数据元素; ③ 除第一个元素外,每个元素均有唯一一个直接前驱; ④ 除最后一个元素外,每个元素均有唯一一个直接后继。 二、线性表定义 线性表(Linear List) : 阅读全文
posted @ 2022-01-12 16:17 拒绝bug 阅读(289) 评论(0) 推荐(0)
第一章绪论——算法分析初步(三)
摘要:1.1 算法 算法(Algorithm):是对特定问题求解方法(步骤)的一种描述,是指令的有限序列,其中每一条指令表示一个或多个操作。 算法具有以下五个特性 ① 有穷性: 一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。 ② 确定性:算法中每一条指令必须有确切的含义。不存在二义性。 阅读全文
posted @ 2021-12-11 18:39 拒绝bug 阅读(253) 评论(0) 推荐(0)
第一章绪论——抽象数据类型(二)
摘要:抽象数据类型(Abstract Data Type ,简称ADT):是指一个数学模型以及定义在该模型上的一组操作。 ADT的定义仅是一组逻辑特性描述, 与其在计算机内的表示和实现无关。因此,不论ADT的内部结构如何变化,只要其数学特性不变,都不影响其外部使用。 ADT的形式化定义是三元组:ADT=( 阅读全文
posted @ 2021-12-11 18:30 拒绝bug 阅读(185) 评论(0) 推荐(0)
第一章绪论——数据结构及其概念(一)
摘要:1.1 基本概念和术语 数据(Data) :是客观事物的符号表示。 在计算机科学中指的是所有能输入到计算机中并被计算机程序处理的符号的总称。 数据对象(Data Object):是性质相同的数据元素的集合,是数据的一个子集。如字符集合C={‘A’,’B’,’C,…} 数据元素(Data Elemen 阅读全文
posted @ 2021-12-11 18:21 拒绝bug 阅读(680) 评论(0) 推荐(0)