用链表实现二叉树
来源:互联网 发布:淘宝速成教程 编辑:程序博客网 时间:2024/06/06 15:47
/*
实现功能:用链式表操作二叉树
编译环境:Windows7 64b,vc6.0
日期: 2015/7/21
作者: wtt561111
*/
/*
遇到的困难及解决办法
*/
#include "stdio.h"
#include "stdlib.h"
typedef struct BinTreeNode *PBinTreeNode;//方便理解为树节点
struct BinTreeNode{
PBinTreeNode llink;
PBinTreeNode rlink;
char info;
};
typedef struct BinTreeNode *PBinTree;//方便理解为树
/*
创建一个根节点内容为x的树,成功返回根节点,否则返回NULL
*/
PBinTree createBinTree(char x){
PBinTree pbt=(PBinTree)malloc(sizeof(struct BinTreeNode));
if(pbt==NULL){
printf("out of space\n");
return NULL;
}
pbt->info=x;
pbt->llink=NULL;
pbt->rlink=NULL;
return pbt;
}
/**************************************************************************/
/*
添加子节点,0表示左子结点,1表示右子结点。成功返回1,否则返回0
*/
int AppendChild(PBinTree t,int child,char childInfo){
PBinTreeNode ptn=(PBinTreeNode)malloc(sizeof(struct BinTreeNode));
if(ptn==NULL){
printf("out of space\n");
return 0;
}
ptn->info=childInfo;
ptn->llink=NULL;
ptn->rlink=NULL;
if(child==0){
t->llink=ptn;
return 1;
}else
if(child==1){
t->rlink=ptn;
return 1;
}else{
printf("请输入0:左子结点或者1:右子结点\n");
return 0;
}
}
/**************************************************************************/
/*
返回左子结点,成功返回子结点地址,否则返回NULL
*/
PBinTreeNode leftChild_link(PBinTree t){
if(t==NULL){
printf("empty tree\n");
return NULL;
}
return t->llink;
}
/**************************************************************************/
/*
返回右子结点,成功返回子结点地址,否则返回NULL
*/
PBinTreeNode rightChild_link(PBinTree t){
if(t==NULL){
printf("empty tree\n");
return NULL;
}
return t->rlink;
}
/**************************************************************************/
int main(){
char root_info='A';
PBinTree pbt_get=createBinTree(root_info);
AppendChild(pbt_get,0,'B');
AppendChild(pbt_get,1,'C');
AppendChild(pbt_get->llink,0,'D');
AppendChild(pbt_get->llink,1,'E');
AppendChild(pbt_get->rlink,0,'F');
AppendChild(pbt_get->rlink,1,'G');
AppendChild(pbt_get->llink->llink,0,'H');
AppendChild(pbt_get->llink->llink,1,'I');
AppendChild(pbt_get->llink->rlink,0,'J');
PBinTreeNode root_right=rightChild_link(pbt_get);
printf("%c\n",root_right->info);
return 0;
}
- 用链表实现二叉树
- 二叉运算树:用链表实现二叉运算树
- JAVA 实现二叉树
- 二叉树 java实现
- 二叉查找树实现
- 二叉树实现-java
- 二叉树的实现
- 简单二叉树实现
- 二叉树实现学习
- 二叉树的实现
- 二叉树的实现..
- 二叉树实现
- JAVA 实现二叉树。
- 二叉树Java实现
- 二叉树的实现
- 二叉树 c实现
- 二叉树实现源代码
- java实现二叉树
- 如何使能RT5350 1T2R ANTENNA DIVERSITY
- IIS中给网站添加匿名访问用户图文教程
- caffe+ubuntu14.04+install
- 框架 的分页
- 在报表中给session赋值实现报表间参数共享
- 用链表实现二叉树
- 莫让“专业对口”俘虏了你
- 自带背景音乐的代码
- write()二进制方式写文件
- java异常整理
- 星座运势sdk代码示例实现分享
- Error:getsupportfragmentmanager()未定义
- ofbiz之entity 实体解析 扩展 视图 复合列写法
- JSP自定义标签开发入门