数据结构第八章:栈与队列

Posted 歌咏^0^

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构第八章:栈与队列相关的知识,希望对你有一定的参考价值。

一、栈

        1、概念
                数据的插入和删除都是在同一端,不能在其他任何位置,这种逻辑结构称之为栈。
        2、特性
                后进先出。或者说先进后出
        3、分类
                链式栈、顺序栈

        4、链式栈 
                用来存储栈元素的内存空间不是连续的。其实就是一个头插头删(或者尾插尾删)的特殊的链表
        5、顺序栈
                用来存储栈元素的内存空间是连续的。

二、队列

        1、概念
                插入数据(入队)在指定的一端,删除数据(出队)必须在另一端,不能在其他任何位置,这种逻辑结构称之为队列。
        2、特性
                先进先出
        3、分类
                链式队列、顺序队列

        4、链式队列 
                用来存储队列元素的内存空间不是连续的。其实就是一个头插尾删的特殊的链表
        5、顺序队列 
                用来存储队列元素的内存空间是连续的。
    
        6、链式队列的设计

                管理结构体        
                typedef int QElemType;    

                //数据结点
                struct node{
                    QElemType data;
                    struct node *next;
                };

                struct list_queue{
                    struct node*queue;//存储链表的数据首节点地址
                    int size;//队列的大小,也就是队列元素的个数
                };

 

        7、顺序队列的设计
                设计队列管理结构体        
                typedef int QElemType;

                struct sequent_queue{
                    QElemType *queue;//定义一块连续的内存空间存储队列元素,queue存储队列元素内存空间的起始地址
                     int size;//队列的大小
                     int  first ;//队头偏移量
                     int  last;//队尾偏移量   
                };

 

以上是关于数据结构第八章:栈与队列的主要内容,如果未能解决你的问题,请参考以下文章

第八章:Java集合

Java集训(算法&&面试题)第八天(栈与队列)

Java集训(算法&&面试题)第八天(栈与队列)

Java集训(算法&&面试题)第八天(栈与队列)

第八章.Java集合

第八章 事务型消息