《数据结构(C++)》学习辅导系列:栈和队列
栈和队列是操作受限的线性表,好像每本讲数据结构的数都是这么说的。有些书按照这个思路给出了定义和实现;但是很遗憾,这本书没有这样做,所以,原书中的做法是重复建设,这或许可以用不是一个人写的这样的理由来开脱。
顺序表示的栈和队列,必须预先分配空间,并且空间大小受限,使用起来限制比较多。而且,由于限定存取位置,顺序表示的随机存取的优点就没有了,所以,链式结构应该是首选。
栈的定义和实现
#ifndef stack_h
#define stack_h
#include "list.h"
template class stack : list//栈类定义
{
public:
void push(type value)
{
insert(value);
}
type pop()
{
type p = *getnext();
removeafter();
return p;
}
type gettop()
{
return *getnext();
}
list ::makeempty;
list ::isempty;
};
#endif
队列的定义和实现
#ifndef queue_h
#define queue_h
#include "list.h"
template class queue : list//队列定义
{
public:
void enqueue(const type &value)
{
lastinsert(value);
}
type dequeue()
{
type p = *getnext();
removeafter();
isempty();
return p;
}
type getfront()
{
0条评论