编程教程
您现在的位置: 中国个人站长站 >> 网络编程 >> Visual C++ >> 教程正文 数据结构学习(C++)——栈和队列(定义和实现)
推荐位

数据结构学习(C++)——栈和队列(定义和实现)

中国个人站长站 Visual C++ 点击数: 更新时间:2004-8-25

栈和队列是操作受限的线性表,好像每本讲数据结构的数都是这么说的。有些书按照这个思路给出了定义和实现;但是很遗憾,这本书没有这样做,所以,原书中的做法是重复建设,这或许可以用不是一个人写的这样的理由来开脱。

顺序表示的栈和队列,必须预先分配空间,并且空间大小受限,使用起来限制比较多。而且,由于限定存取位置,顺序表示的随机存取的优点就没有了,所以,链式结构应该是首选。

栈的定义和实现

#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

 

[1] [2] 下一页

教程录入:swh    责任编辑:swh 
个人站长站与你风雨同舟!
本站所提供的资源均来源于互联网,如有侵权行为,请与本站管理员联系,我们会第一时间删除!
·如果您发现《数据结构学习(C++)——栈和队列(定义和实现)》文章有错误,也请通知我们修改!
联系邮箱chinageren#126.com,谢谢支持!
站内搜索:
版权所有:中国个人站长站 2007-2008 未经授权禁止复制或建立镜像 客服QQ号:112731235
copyright © 2007-2008 www.ChinaGeRen.com online services. all rights reserved. 苏ICP备05000059号