随笔分类 -  学习笔记 / 数据结构 / 第三章 栈与队列

摘要:3.5.3 队列的链式表示和实现 适用于用户无法估计所用队列的长度,则适宜采用该类型的队列 链式队列的结构图如下所示 链队列的类型定义 // 这里是定义是每个节点类型 typedef struct Qnode{ QElemType data; struct Qnode *next; }QNode,* 阅读全文
posted @ 2023-03-18 21:13 什么都会有的 阅读(96) 评论(0) 推荐(0) 编辑
摘要:3.5.2 队列的顺序表示和实现 队列的物理存储可以用顺序结构,也可用链式存储结构,相应地队列的存储方式也分为两种,即顺序队列和链式队列、 队列的顺序表示——————用一维数组base[MAXQSIZE] #define MAXQSIZE 100 // 最大队列的长度 typedef struct{ 阅读全文
posted @ 2023-03-18 21:12 什么都会有的 阅读(107) 评论(0) 推荐(0) 编辑
摘要:3.5 队列的表示和操作实现 相关术语 队列(Queue)是仅在表尾进行插入操作,在表头进行删除操作的线性表。 表尾及a ( ( ( ( (n)))))端,称为队尾;表头即a ( ( ( ( (1)))))端称为队头 它是一种先进先出(FIFO)的线性表 插入的元素称为入队;删除的元素称为出队 队列 阅读全文
posted @ 2023-03-18 21:11 什么都会有的 阅读(68) 评论(0) 推荐(0) 编辑
摘要:递归的定义 若一个对象部分包含它自己,或用自己给自己定义,则称这个对象是递归的。 若一个过程直接地或间接调用自己,则称这个过程是递归的过程。 例如:递归求n的阶乘 long Fact(long n){ if(n==0) // 递归函数结束条件 return 1; else return n*Fact 阅读全文
posted @ 2023-03-18 21:11 什么都会有的 阅读(126) 评论(0) 推荐(0) 编辑
摘要:链栈的表示 链栈是运算受限的单链表,只能在链表头部进行操作 typedef struct StackNode{ SElemType data; Struct StackNode *next; }StackNode,*LinkStack; LinkStack S; 我们是在头部进行操作,类似与头插法, 阅读全文
posted @ 2023-03-18 21:08 什么都会有的 阅读(72) 评论(0) 推荐(0) 编辑
摘要:由于栈本身就是线性表,于是栈也有顺序存储和链式存储两种实现方式 栈的顺序存储——顺序栈 栈的链式存储——链栈 顺序栈的表示和实现 存储方式:同一般线性表的顺序存储结构完全相同, 利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素。栈底一般在低端地址。 附设top指针,指示栈顶元素在顺序栈中的位 阅读全文
posted @ 2023-03-18 21:04 什么都会有的 阅读(159) 评论(0) 推荐(2) 编辑
摘要:1、栈的抽象数据类型定义 ADT Stack{ 数据对象: D={ ai | ai∈ElemSet,i=1,2,3,...,n。n>=0} 数据关系: R1={ <ai-ai>| ai-1 and ai∈D,i=2,...,n} 约定an端为栈顶,a1端为栈底 基本操作:初始化栈、进栈、出栈、取栈顶 阅读全文
posted @ 2023-03-18 21:00 什么都会有的 阅读(9) 评论(0) 推荐(0) 编辑
摘要:【案例1】进制转换 十进制整数N向其他进制数d(二、八、十六)的转换是计算机实现计算基本问题 转换法则:除以d倒取余 该转换法则对应一个简单算法原理: n=(n div d)*d +n mod d 其中:div为整除运算,mod为求余运算 把十进制数159转换成八进制数。 这里需要用到栈中的是:将得 阅读全文
posted @ 2023-03-18 20:59 什么都会有的 阅读(71) 评论(0) 推荐(0) 编辑
摘要:栈和队列是限定插入和删除的只能在表“端点”进行的线性表 普通线性表的插入和删除操作 栈的定义和特点 栈(stack)是一个特殊的线性表,是限定的仅在一端(通常是表尾)进行插入和删除操作线性表 又称为后进后出(Last In First Out)的线性表,简称LIFO结构 栈的相关概念 栈是仅想表尾进 阅读全文
posted @ 2023-03-18 20:59 什么都会有的 阅读(296) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示