读书笔记--栈和队列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了读书笔记--栈和队列相关的知识,希望对你有一定的参考价值。

    栈是个顺序的空间结构,其主要原理是开辟一个初始的、连续的空间以供节点的插入,栈节点之间并没有逻辑上的关联,也就是说,上一个节点并没有存储下一个节点的地址,也就是指针。所以栈的清空可以直接将头指针指向尾指针所指向的,下一个节点插入将覆盖掉原来的数据。简而言之,删除一个节点是将该节点从栈中删除,而并没有删除这个节点的数据。而队列不同,队列节点与节点之间有逻辑上的关联,上一个节点的指针域存储下一个节点的地址,而他们之间的访问则要遍历整个队列。所以清空队列需要依次清空,而不能直接在头指针和尾指针进行操作。

 1 typedef struct QNode{
 2     QElemType date;//节点的数据域,QElemType是任何类型的数据 
 3     struct QNode *next;//节点的指针域,指向下一节点 
 4 }QNode,*QueuPtr;
 5 typedef struct{
 6     Queuptr front;//队头指针 
 7     Queuptr rear;//队尾指针 
 8 }LinkQueue;
 9 Status DestroyQueue(LinkQueue &Q){
10     while(Q.front){//如果对头指针不为空,也就是说存在下一个节点 
11         Q.rear=Q.front->next;//队尾指针指向下一个节点,保存下一节点的地址 
12         free(Q.front);//删除此节点,释放其内存 
13         Q.front=Q.rear;// 将保存在队尾指针的下一节点地址赋值给队头指针 
14     }
15     return OK;
16 } 

 

以上是关于读书笔记--栈和队列的主要内容,如果未能解决你的问题,请参考以下文章

数据结构与算法学习笔记 栈和队列Ⅰ

栈和队列学习笔记(21.10.12)

数据结构与算法学习笔记栈和队列

剑指offer笔记栈和队列

[数据结构读书笔记 ] 队列 以及 单调队列

[数据结构读书笔记 ] 队列 以及 单调队列