极构网站建设工作室,做logo网站,3g微网站是什么,什么网站好建设栈、队列和链表
栈
栈的定义#xff1a;只允许在一端进行插入和删除的线性表栈顶#xff1a;线性表允许插入和删除的一端栈底#xff1a;线性表不允许插入和删除的另一端空栈#xff1a;不含任何元素的空表特点#xff1a;后进先出(LIFO)
栈操作
initstack(S)只允许在一端进行插入和删除的线性表栈顶线性表允许插入和删除的一端栈底线性表不允许插入和删除的另一端空栈不含任何元素的空表特点后进先出(LIFO)
栈操作
initstack(S)初始化一个空栈stackempty(S)判断栈是否为空push(S, x)进栈pop(S, x)出栈gettop(S, x)读栈顶元素destroystack(S)栈销毁并释放S占用的存储空间
栈的顺序存储
顺序栈利用一组地址连续的存储单元存放自栈底到栈顶的数据元素同时预设一个指针top指示当前栈顶元素的位置 共享栈两栈共享空间,利用栈底位置相对不变的特征可以让两个顺序栈共享一个一维数组空间将两栈的栈底设置在共享空间的两端两个栈顶向共享空间中间延伸
栈的链式存储
链栈便于多个栈共享存储空间采用单链表实现规定所有的操作在单链表的表头进行链表没有头节点lhead指向栈顶元素
队列
对列是只允许在一端进行插入操作而在另一端进行删除操作的线性表特点先进先出(FIFO)队头允许删除的一端队尾允许插入的一端空队列不包含任何元素的空表
队列操作
初始化队列判断队列是否为空入队出队读队头元素
队列的顺序存储
顺序队列是分配一块连续的存储单元存放队列中的元素并设两个指针队头指针和队尾指针 循环队列是当队尾元素溢出时从头开始存储形成一种头尾衔接的顺序存储结构
队列的链式存储
链队列是一个同时带有队头指针和队尾指针的单链表规则是尾进头出
双端队列
双端队列是两端都可以进行出队和入队操作的队列
链表
定义链表是一种物理存储上非连续数据元素的逻辑顺序通过链表中的指针链接次序实现的一种先行存储结构特点链表由一系列节点组成节点在运行时动态生成每个节点包含存储数据元素的数据域和存储下一个节点地址的指针域双向链表与单向链表的区别是节点中有两个节点指针分别指向前后两个节点。链表和数组的对比 链表是通过节点把离散的数据链接成一个表通过对节点的插入和删除操作实现对数据的存取。 数组是通过开辟一段连续的内存来存储数据这是两者最大的区别。 数组有起始地址和结束地址链表是一个圈没有头尾之分但是为了方便节点的插入和删除操作会人为规定一个根节点