网站建设与管理学校,会计培训班有用吗,网站备案 2016,怎样做网站的签约设计师第三章 栈与队列 一、栈 1.定义#xff1a;只允许一端进行插入和删除的线性表#xff0c;结构与手枪的弹夹差不多#xff0c;可以作为实现递归函数#xff08;调用和返回都是后进先出#xff09;调用的一种数据结构#xff1b;
栈顶#xff1a;允许插入删除的那端…第三章 栈与队列 一、栈 1.定义只允许一端进行插入和删除的线性表结构与手枪的弹夹差不多可以作为实现递归函数调用和返回都是后进先出调用的一种数据结构
栈顶允许插入删除的那端栈底固定的不允许插入或删除空栈不含元素
2.特点后进先出 3.操作入栈push、出栈pop 4.应用递归、进制转换、迷宫求解、括号匹配。 5.栈的顺序存储顺序栈
定义利用一组地址连续的存储单位存放自栈底到栈顶的数据元素同时用一指针指示栈顶位置栈顶指针S.top初始值-1栈顶元素S.data[S.top] 进栈操作栈不满时栈顶指针1再送栈到栈顶元素出栈操作栈非空时先取栈顶元素值再将栈顶指针-1栈空条件S.top-1栈满条件S.topMaxSize-1栈长S.top1。 6.共享栈定义两共享栈共享一个一维数组空间两个栈顶指针都指向栈顶元素top-1时0号栈为空top1MaxSize时1号栈为空当两栈指针相邻top1-top01时满栈共享栈是为了更好的利用存储空间两个栈的空间相互调节只有整个存储空间都被占满时才发生上溢。
7.链栈
定义采用链式存储的栈便于多个栈共享存储空间和提高效率且不存在栈满上溢问题采用单链表实现所有操作都在单链表表头进行操作与链表相似
二、队列 1.定义简称队一种操作受限制的线性表只允许在表的一端插入在表另一端删除。
队头允许删除的一端队头指针指向队头元素队尾允许插入的一端队尾指针指向队尾元素下一个位置空队列无元素 初始条件队空条件Q.frontQ.rear0front队头rear队尾;假溢出一维数组队列的尾指针已达到数组上界不能入队其实数组中还有空位置
2.特点先进先出怎么进怎么出 3.应用缓冲区、页面替换算法 4.操作进队队不满时先送值到队尾元素队尾指针1出队队不空时先取队头元素值队头指针1 5.循环队列把存储队列元素的表从逻辑上看成一个环循环队列的引入是为了防止假溢出
初始时Q.frontQ.rear0;队首指针进1出队Q.front(Q.front1)%MaxSize;队尾指针进1入队Q.rear(Q.rear1)%MaxSize;队列长度队列中元素个数(Q.rear-Q.frontMaxSize)%MaxSize【(尾-头M)%M】队空Q.frontQ.rear0队满(Q.rear1)%MaxSizeQ.front出队入队指针按顺时针进1例题循环队列存储在数组A[0…n]中则入队操作为rear(rear1)mod(n1)。 6.链队列同时带队头指针和队尾指针的单链表无假溢出现象
7.双端队列允许两边都可以入队和出队。