视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
数据结构_二叉树各种算法实现
2025-10-05 18:00:04 责编:小OO
文档
二叉树各种算法实现

#include

#include

#define  MAXSIZE 20

//二叉树结点的结构体表示形式

typedef struct node

{

    char    data;

}BTree;

//栈的结构体表示形式

typedef struct stackelem

{

}Stack;

//队列的结构体的表示形式

typedef struct queueelem

{

}Queue;

//创建二叉树,利用递归的方法

BTree* Create()

{

}

//求二叉树的高度,递归实现

int Height(BTree* bt)

{

}

 int Width(BTree *T)//二叉树宽度

  { 

 向量存放各层结点数

 最大宽度

 若是访问根结点

 第1层加1

 到第2层

 若有左孩子则该层加1

 若有右孩子则该层加1

 访问子树结点

 下一层结点数

 n[i]++;

 取出最大值

 遍历左子树

 往上退一层

 遍历右子树

 return max;

  }

//层次遍历二叉树,用队列来实现

void TraversalOfLevel(BTree* bt)

{

 {

 q.front=q.front+1;

}

int leafcount(BTree* root)//统计叶子结点个数

{

 

 

  

}

int CountNode (BTree *t) //节点总数

{

 

 

}

BTree *copy(BTree *p) // 复制一棵二叉树

{

 

 

 

 

 

 

}

/* 判断两棵二叉树是否相似的递归算法 */

int Similar(BTree *t1, BTree *t2)

}

int CompTree(BTree *tree1,BTree *tree2)//二叉树是否相等

{

 

  

  

 

 

}

int main()

{

 叶子结点个数为:\\n");

 结点总数为:\\n");

 度为1的结点个数为:%d\\n",countn-2*leafgs+1);

 度为2的结点个数为:%d\\n",leafgs-1);

 二叉树的高度:\\n");

 二叉树的宽度:\\n");

 层次遍历二叉树:\\n");

 复制的二叉树为:\\n");

  此两二叉树相似\\n");

 此两二叉树不相似\\n");

  此两二叉树相等\\n");

 此两二叉树不相等\\n");

}

运行截图:下载本文

显示全文
专题