资源简介
用VC 6.0运行,完美编译运行,反正我们老师检查是完美的过
代码片段和文件信息
#include
#include
#include
#include
#include
#include
/////////////////////////////////////////////////
#define NULL 0
#define LStack linkedStack
/////////////////////////////////////////////////
// 链式栈类的前视定义
template
class linkedStack;
/////////////////////////////////////////////////
// 定义链式栈结点类
template
class StackNode
{
friend class linkedStack;
private:
T data;
StackNode *next;
StackNode(T item = 0 StackNode *p = NULL)
{
data = item;
next = p;
}
};
/////////////////////////////////////////////////
// 定义链式栈类
template
class linkedStack
{
private:
StackNode *top;
public:
linkedStack();
~linkedStack();
bool IsEmpty(void) const;
int Length(void) const;
void Push(const T &item);
T Pop(void);
T GetTop(void);
void Clear(void);
};
// 构造函数
template
linkedStack::linkedStack()
{
top = NULL;
}
// 析构函数
template
linkedStack::~linkedStack()
{
Clear();
}
// 判断栈是否为空
template
bool linkedStack::IsEmpty(void) const
{
return (! top);
}
// 获取队列的长度
template
int linkedStack::Length(void) const
{
StackNode *temp = new StackNode();
temp = top;
int length = 0;
while (temp)
{
temp = temp->next;
length++;
}
return length;
}
// 压入数据(入栈)
template
void linkedStack::Push(const T &item)
{
top = new StackNode(item top);
}
// 抽出数据(出栈)
template
T linkedStack::Pop(void)
{
if (! IsEmpty())
{
StackNode *temp = top;
top = top->next;
T value = temp->data;
delete temp;
return value;
}
else
{
cout << “栈已经为空!“ << endl;
getch();
exit(1);
}
}
// 获取栈头数据
template
T linkedStack::GetTop(void)
{
if (! IsEmpty())
{
return top->data;
}
else
{
cout << “栈已经为空!“ << endl;
getch();
exit(1);
}
}
// 设置栈为空栈
template
void linkedStack::Clear(void)
{
StackNode *temp = new StackNode();
while (top)
{
temp = top;
top = top->next;
delete temp;
}
}
/////////////////////////////////////////////////
// 定义邻接表的边表类
class Edge
{
public:
int number;
int position;
char weight;
Edge *link;
Edge();
Edge(int num int pos char ch);
};
Edge::Edge()
{
number = -1;
position = -1;
link = NULL;
}
Edge::Edge(int num int pos char ch)
{
number = num;
position = pos;
weight = ch;
link = NULL;
}
/////////////////////////////////////////////////
// 定义邻接表的顶点类
class Vertex
{
public:
int number;
Vertex *next;
Edge *out;
Vertex();
Vertex(int num);
};
Vertex::Vertex()
{
number = -1;
next = NULL;
out = NULL;
}
Vertex::Vertex(int num)
{
number = num;
next = NULL;
out = NULL;
}
/////////////////////////////////////////////////
// 用邻接表定义的图类
class AdjacentTable
{
相关资源
- 颜色识别形状识别STM103嵌入式代码
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
- mfc 调用redis
- FTP客户端源码(c++)
- c++ 画图(14Qt-XPS)
- c++多边形交并差运算
- VC++基于OpenGL模拟的一个3维空间模型
- c++ 虚拟摄像头
- hook,捕获所有案件,查找所有窗口,
- C语言课设计算器
- c++ 简易贪吃蛇源码
- 高精度加法(c++代码)
- C++调用百度地图案例
- 北京化工大学计算方法(C/C++)讲义
- 基于VC++的SolidWorks二次开发SolidWorks
- c++ 模拟鼠标按键
- OFD编辑器
- Beginning C++17 From Novice to Professional
- C++ STL实现
- opencv手部轮廓识别以及轨迹识别
- 百度C++编码规范
- C++ sql2008 WebServer通讯.docx
- c++ 定时关机程序源码
- 基于VSCode和CMake实现C++开发
- c++语法查询工具
- c++ 账务系统源码
- GBT 28169-2011 嵌入式软件 C语言编码规范
- c++ 猜拳小游戏
- XUnZip Zip解压缩.rar
评论
共有 条评论