Ⅰ.说明:
1.采用左孩子右兄弟的方式,转化为二叉树来实现。
2.树的后根遍历与二叉树的中根遍历即有联系又有区别,请读者注意分析体会。
Ⅱ.功能:
1.创建树并写入数据
2.先根遍历树
3.计算树高
4.后根遍历树
5.层次遍历树
6.搜索数据域为某值的结点
7.删除数据域为某值的结点及其子树
8.销毁树
Ⅲ.代码:
//.h文件
#if...
Ⅰ.功能:
1.创建图
2.展示全图
3.添加顶点
4.添加边
5.删除顶点
6.删除边
7.查看指定边权值
8.修改指定边权值
9.输出两点间的所有简单路及路径对应权值
10.销毁图
ps:关于9,如果不存在任何简单路,输出“不存...
#include<iostream>
#include<string>
using namespace std;
struct Node
{
char ch;
Node* next;
Node(char c, Node* p){ ch = c; next = p; }
};
void main()
{
string str;
bool flag = true;
while (flag)
{
cout << "请输入算术表达式:" << endl;
getline(cin, str);
int l...
/*
代码功能:
1.链接存储方式实现单向链表(表头含有一个空结点作为哨位结点)
2.将另一数组中的数据读入该链表
3.链表数据排序(插入排序)
4.从外界插入一个数据,并使插入后的链表依然有序
5.实现过程中运用了模板
备注:按课程要求做的,有点糙。
*/
//.h文件
#ifndef LIST_H
#define LIST_H
#include<iostream>
template<typename T>
struct Node_for_List ...
//.h文件
#ifndef STACK_H
#define STACK_H
#include<iostream>
#include<iomanip>
using namespace std;
template<typename T> //链式栈结点
struct L_Node
{
T data;
L_Node<T>* next;
L_Node();
L_Node(const T&item,L_Node<T>* next=NULL); //重载构造函数
};
...
//.h文件
#ifndef STACK_H
#define STACK_H
#include<iostream>
template <typename T>
class Stack
{
private:
T* array;
int size;
int top;
private:
bool Push(const T& item);
bool Pop(T& item);
bool Creat(const int& num);
bool IfEmpty()const;
bool I...
//.h文件
#ifndef TREE_H
#define TREE_H
#include<iostream>
#include<iomanip>
using namespace std;
template<typename T>
struct Node //树结点
{
T data;
Node<T> *left, *right;
Node(const T& item);
};
template<typename T>
Node<T>::Node(const T& item) ...