湖南大学数据结构实验代码(十六个实验,全部代码,可以参考),全部自己做过的实验,希望能给学弟学妹参考,杜绝抄袭
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-06-27 17:58 实验代码
文件 7268 2012-04-27 09:48 实验代码BSTTree.cpp
文件 478714 2012-04-27 09:48 实验代码BSTTree.exe
目录 0 2012-06-27 17:58 实验代码Kruskal
文件 82 2012-05-30 10:31 实验代码Kruskalinput.txt
文件 2393 2012-05-30 10:32 实验代码KruskalKruskal.cpp
文件 520078 2012-05-30 11:18 实验代码KruskalKruskal.exe
文件 68 2012-05-30 11:18 实验代码Kruskaloutput.txt
文件 2566 2011-10-28 23:59 实验代码queue.cpp
文件 1049 2011-10-28 23:59 实验代码queue.h
文件 1149 2011-08-08 12:35 实验代码SeqStack.cpp
文件 476 2011-08-08 12:26 实验代码SeqStack.h
文件 6449 2012-04-19 21:58 实验代码二叉树实现中缀表达式转化为逆波兰表达式.cpp
文件 530110 2006-07-19 17:12 实验代码二叉树实现中缀表达式转化为逆波兰表达式.exe
文件 3810 2012-05-04 21:43 实验代码优先队列与堆.cpp
文件 595777 2012-05-04 21:48 实验代码优先队列与堆.exe
目录 0 2012-06-27 17:58 实验代码单源最短路径
文件 144 2012-05-20 21:36 实验代码单源最短路径input.txt
文件 192 2012-05-20 21:37 实验代码单源最短路径output.txt
文件 2686 2012-05-20 21:34 实验代码单源最短路径单源最短路径.cpp
文件 655386 2012-05-20 21:36 实验代码单源最短路径单源最短路径.exe
目录 0 2012-06-27 17:58 实验代码哈夫曼编译码器
文件 26 2006-06-14 09:09 实验代码哈夫曼编译码器input1.txt
文件 7 2006-06-14 08:51 实验代码哈夫曼编译码器input2.txt
文件 18 2012-05-20 17:40 实验代码哈夫曼编译码器output.txt
文件 3539 2006-06-14 09:06 实验代码哈夫曼编译码器哈夫曼编译码器.cpp
文件 501661 2012-05-20 17:40 实验代码哈夫曼编译码器哈夫曼编译码器.exe
文件 6269 2012-05-16 20:38 实验代码图遍历.cpp
文件 524737 2012-05-20 17:31 实验代码图遍历.exe
文件 2541 2012-04-13 08:29 实验代码基于队列实现的杨辉三角.cpp
文件 592394 2012-04-13 16:25 实验代码基于队列实现的杨辉三角.exe
............此处省略27个文件信息
#include
#include
#include
#include
using namespace std;
template
class BST_Tree; //树的声明
template
class Node //定义树节点
{
friend class BST_Tree;
private:
T item;
Node*LChild*RChild;//左指针右指针
public:
Node(const T&item1Node*L=NULLNode*R=NULL):item(item1)LChild(L)RChild(R){}
};
template
class BST_Tree
{
private:
Node*Root; //树根
int size; //结点数目
void PrePrint(Node*t)const; //前序遍历
public:
BST_Tree(){Root=NULL;size=0;}
bool Insert(const T&value); //插入结点
bool Delete(const T&value); //删除结点
//查找结点 返回查找次数 并存储此节点的父节点 若结点不存在,则插入此节点
int FindNode(const T&value);
void PrePrint()const //前序遍历
{
PrePrint(Root);
}
};
template
bool BST_Tree::Insert(const T&value) //插入结点
{
Node*t*ParentNode*NewNode; //结点t访问树 寻找合适位置 结点ParentNode为t的父节点 结点NewNode为新生成的结点
t=Root;
while(t!=NULL) //访问不结束 继续访问 规则 左子树的值比根结点值小,右子树值比根结点大
{
ParentNode=t; //存储父节点
if(t->item>=value) //则访问左子树
t=t->LChild;
else
t=t->RChild;
}
NewNode=new Node(valueNULLNULL); //生成新节点
if(Root==NULL) //树空
Root=NewNode;
else
if(ParentNode->item>=value)
ParentNode->LChild=NewNode;
else
ParentNode->RChild=NewNode;
size++;
return true;
}
template
bool BST_Tree::Delete(const T&value) //删除结点
{
Node*t*ParentNode; //结点t访问树 寻找合适位置 结点ParentNode为t的父节点
t=Root;
//下面进行查找工作
while(t!=NULL) //树非空继续访问
{
if(value==t->item) //找到结点则结束查找
break;
else
{
ParentNode= t;
if(valueitem) //往左孩子查找
t = t->LChild;
else
t = t->RChild; //往右孩子查找
}
}
if(t==NULL)
return false;
if(t->LChild==NULL&&t->RChild==NULL) //要删除的为叶子结点
{
if(t->item==Root->item) //删除为根结点时
Root=NULL;
else
if(ParentNode->LChild&&ParentNode->LChild->item==value)//结点为左孩子
ParentNode->LChild=NULL;
else
ParentNode->RChild=NULL;
}
else if(t->LChild==NULL&&t->RChild!=NULL)//要删除的为只有单亲结点
{
if(t->item==Root->item) //删除为根结点时
Root=Root->RChild;
else
if(ParentNode->LChild&&ParentNode->LChild->item==value)//结点为左孩子
ParentNode->LChild=t->RChild;
else
ParentNode->RChild=t->RChild;
}
else if(t->LChild!=NULL&&t->RChild==NULL)//要删除的为只有单亲结点
{
if(t->item==Root->item) //删除为根结点时
Root=Root->LChild;
else
if(ParentNode->LChild&&ParentNode->LChild->item==value)//结点为左孩子
ParentNode->LChild=t
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-06-27 17:58 实验代码
文件 7268 2012-04-27 09:48 实验代码BSTTree.cpp
文件 478714 2012-04-27 09:48 实验代码BSTTree.exe
目录 0 2012-06-27 17:58 实验代码Kruskal
文件 82 2012-05-30 10:31 实验代码Kruskalinput.txt
文件 2393 2012-05-30 10:32 实验代码KruskalKruskal.cpp
文件 520078 2012-05-30 11:18 实验代码KruskalKruskal.exe
文件 68 2012-05-30 11:18 实验代码Kruskaloutput.txt
文件 2566 2011-10-28 23:59 实验代码queue.cpp
文件 1049 2011-10-28 23:59 实验代码queue.h
文件 1149 2011-08-08 12:35 实验代码SeqStack.cpp
文件 476 2011-08-08 12:26 实验代码SeqStack.h
文件 6449 2012-04-19 21:58 实验代码二叉树实现中缀表达式转化为逆波兰表达式.cpp
文件 530110 2006-07-19 17:12 实验代码二叉树实现中缀表达式转化为逆波兰表达式.exe
文件 3810 2012-05-04 21:43 实验代码优先队列与堆.cpp
文件 595777 2012-05-04 21:48 实验代码优先队列与堆.exe
目录 0 2012-06-27 17:58 实验代码单源最短路径
文件 144 2012-05-20 21:36 实验代码单源最短路径input.txt
文件 192 2012-05-20 21:37 实验代码单源最短路径output.txt
文件 2686 2012-05-20 21:34 实验代码单源最短路径单源最短路径.cpp
文件 655386 2012-05-20 21:36 实验代码单源最短路径单源最短路径.exe
目录 0 2012-06-27 17:58 实验代码哈夫曼编译码器
文件 26 2006-06-14 09:09 实验代码哈夫曼编译码器input1.txt
文件 7 2006-06-14 08:51 实验代码哈夫曼编译码器input2.txt
文件 18 2012-05-20 17:40 实验代码哈夫曼编译码器output.txt
文件 3539 2006-06-14 09:06 实验代码哈夫曼编译码器哈夫曼编译码器.cpp
文件 501661 2012-05-20 17:40 实验代码哈夫曼编译码器哈夫曼编译码器.exe
文件 6269 2012-05-16 20:38 实验代码图遍历.cpp
文件 524737 2012-05-20 17:31 实验代码图遍历.exe
文件 2541 2012-04-13 08:29 实验代码基于队列实现的杨辉三角.cpp
文件 592394 2012-04-13 16:25 实验代码基于队列实现的杨辉三角.exe
............此处省略27个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)