数据结构学习(C )之栈和队列
2008-02-23 05:25:14来源:互联网 阅读 ()
顺序表示的栈和队列,必须预先分配空间,并且空间大小受限,使用起来限制比较多。而且,由于限定存取位置,顺序表示的随机存取的长处就没有了,所以,链式结构应该是最好选择。
栈的定义和实现
#ifndef Stack_H #define Stack_H #include "List.h" template <class Type> class Stack : List<Type>//栈类定义 { public: void Push(Type value) { Insert(value); } Type Pop() { Type p = *GetNext(); RemoveAfter(); return p; } Type GetTop() { return *GetNext(); } List<Type> ::MakeEmpty; List<Type> ::IsEmpty; }; #endif |
队列的定义和实现
#ifndef Queue_H #define Queue_H #include "List.h" template <class Type> class Queue : List<Type>//队列定义 { public: void EnQueue(const Type &value) { LastInsert(value); } Type DeQueue() { Type p = *GetNext(); RemoveAfter(); IsEmpty(); return p; } Type GetFront() { return *GetNext(); } List<Type> ::MakeEmpty; List<Type> ::IsEmpty; }; #endif |
测试程式
#ifndef StackTest_H #define StackTest_H #include "Stack.h" void StackTest_int() { cout << endl << "整型栈测试" << endl; cout << endl << "构造一个空栈" << endl; Stack<int> a; cout << "将1~20入栈,然后再出栈" << endl; for (int i = 1; i <= 20; i ) a.Push(i); while (!a.IsEmpty()) cout << a.Pop() << ' '; cout << endl; } #endif #ifndef QueueTest_H #define QueueTest_H #include "Queue.h" void QueueTest_int() { cout << endl << "整型队列测试" << endl; cout << endl << "构造一个空队列" << endl; Queue<int> a; cout << "将1~20入队,然后再出队" << endl; for (int i = 1; i <= 20; i ) a.EnQueue(i); while (!a.IsEmpty()) cout << a.DeQueue() << ' '; cout << endl; } #endif |
没什么好说的,您能够清楚的看到,在单链表的基础上,栈和队列的实现是如此的简单。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: C 消息连接的一种系统方法
下一篇: 数据结构学习(C )之单链表
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash