码迷,mamicode.com
首页 > 其他好文 > 详细

读书笔记--栈和队列

时间:2017-04-20 21:15:12      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:turn   div   lin   link   queue   class   front   遍历   队列   

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

 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 } 

 

读书笔记--栈和队列

标签:turn   div   lin   link   queue   class   front   遍历   队列   

原文地址:http://www.cnblogs.com/hxlt/p/duilie.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!