湖南大学数据结构实验代码十六个实验,全部代码,可以参考


湖南大学数据结构实验代码(十六个实验,全部代码,可以参考),全部自己做过的实验,希望能给学弟学妹参考,杜绝抄袭
资源截图
代码片段和文件信息
#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个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)