数据结构(栈和队列)

一、栈(Stack)

基本概念:只允许在一端进行插入或删除操作的线性表。

栈顶(Top):线性表语序进行插入和删除的那一端。

栈底(Bottom):固定的,不允许进行插入和删除的那一端。

空栈:不含任何元素的的空表。

栈的顺序存储结构:栈的顺序存储成为顺序栈,他是利用一组地址连续的存储单元存放在栈底刀栈顶的数据元素,同时附设一个指针(top)只是当前栈顶的位置。

  >>>共享栈:利用栈底位置相对不变的特性,可以让两个顺序栈共享一个一维数据空间,将两个栈的栈底分别设置在共享空间的两端,两个栈顶向共享空间的中间延伸。

栈的链式存储结构:采用链式存储的栈成为链栈,链栈的优点是便于多个栈共享存储空间和提高其效率,且不存在栈满上溢的情况,通常采用单链表实现,并规定所有操作都是在单链表的表头的进行的。采用链式存储,便于节点的插入和删除,链栈的操作与链表类似。

二、队列(Quene)

基本概念:队列简称队,也是一种操作受限的线性表,只允许在表的一端进行插入,而在表的另一端进行删除,向队列中插入元素成为入队会进队,删除元素成为出队或离队。其操作的特性是先进先出(First In First Out,FIFO),故又成为先进先出的线性表。

队列的存储结构:队列的顺序实现是指分配一块的存储单元存放在队列中元素,并附设两个指针front和rear分别指示队头元素和队尾元素的位置。

  >>>队列的链式存储结构队列的链式表成为链式表示成为链队列,它实际上是一个同事带有队头指针和队尾指针的单链表,头指针指向队头节点,尾指针指向队尾节点。

双端队列:双端队列指允许两端都可以进行入队和出队操作的队列。包括输出受限的双端队列:允许在一端进行插入和删除;输入受限的双端队列:允许在一端进行插入和删除。

 

posted @ 2019-02-07 15:42  还好一直有你  阅读(282)  评论(0编辑  收藏  举报