二叉树的链表实现
来源:互联网 发布:阿里云搭建游戏加速器 编辑:程序博客网 时间:2024/06/05 16:48
#include <stdio.h>
#include <stdlib.h>
struct tree
{
struct tree *left;
int data;
struct tree *right;
};
typedef struct tree treenode;
typedef treenode *b_tree;
b_tree insert_node(b_tree root, int node)
{
b_tree newnode,currentnode,parentnode;
newnode = (b_tree)malloc(sizeof(treenode));
newnode->data = node;
newnode->left = NULL;
newnode->right = NULL;
if(root == NULL)
{
return newnode;
}
else
{
currentnode = root;
while(currentnode != NULL)
{
parentnode = currentnode;
if(currentnode->data > node)
{
currentnode = currentnode->left;
}
else
{
currentnode = currentnode->right;
}
}
if(parentnode->data > node)
{
parentnode->left = newnode;
}
else
{
parentnode->right = newnode;
}
}
return root;
}
b_tree creat_tree(int *data, int len)
{
b_tree root = NULL;
int i = 0;
for(i = 0; i < len; i++)
{
root = insert_node(root,data[i]);
}
return root;
}
void print_tree(b_tree root)
{
b_tree p;
p = root->left;
printf("Print left_tree data\n ");
while(p != NULL)
{
printf("%5d",p->data);
printf("\n");
p = p->left;
}
p = root->right;
printf("Print right_tree data\n");
while(p != NULL)
{
printf("%5d",p->data);
printf("\n");
p = p->right;
}
}
int main(void)
{
b_tree root = NULL;
int i = 0, len = 0;
int data;
int nodelist[20];
printf("Please input the element of tree\n");
scanf("%d",&data);
while(i != 5)
{
nodelist[len] = data;
len = len +1;
scanf("%d",&data);
i++;
}
root = creat_tree(nodelist,len);
print_tree(root);
return 0;
}
#include <stdlib.h>
struct tree
{
struct tree *left;
int data;
struct tree *right;
};
typedef struct tree treenode;
typedef treenode *b_tree;
b_tree insert_node(b_tree root, int node)
{
b_tree newnode,currentnode,parentnode;
newnode = (b_tree)malloc(sizeof(treenode));
newnode->data = node;
newnode->left = NULL;
newnode->right = NULL;
if(root == NULL)
{
return newnode;
}
else
{
currentnode = root;
while(currentnode != NULL)
{
parentnode = currentnode;
if(currentnode->data > node)
{
currentnode = currentnode->left;
}
else
{
currentnode = currentnode->right;
}
}
if(parentnode->data > node)
{
parentnode->left = newnode;
}
else
{
parentnode->right = newnode;
}
}
return root;
}
b_tree creat_tree(int *data, int len)
{
b_tree root = NULL;
int i = 0;
for(i = 0; i < len; i++)
{
root = insert_node(root,data[i]);
}
return root;
}
void print_tree(b_tree root)
{
b_tree p;
p = root->left;
printf("Print left_tree data\n ");
while(p != NULL)
{
printf("%5d",p->data);
printf("\n");
p = p->left;
}
p = root->right;
printf("Print right_tree data\n");
while(p != NULL)
{
printf("%5d",p->data);
printf("\n");
p = p->right;
}
}
int main(void)
{
b_tree root = NULL;
int i = 0, len = 0;
int data;
int nodelist[20];
printf("Please input the element of tree\n");
scanf("%d",&data);
while(i != 5)
{
nodelist[len] = data;
len = len +1;
scanf("%d",&data);
i++;
}
root = creat_tree(nodelist,len);
print_tree(root);
return 0;
}
- 二叉树的二叉链表实现
- 二叉树的二叉链表实现
- 二叉链表的实现(二叉树)
- 数据结构:二叉树的二叉链表存储--Java实现
- 二叉树的二叉链表存储及其Java实现
- 二叉树的二叉链表存储(java实现)
- 二叉树的二叉链表存储简单实现
- 二叉树之二叉链表的类模板实现
- 二叉树的基本操作 (二叉链表实现)
- 树--二叉树的链表实现
- 二叉树的链表实现
- 二叉树的链表实现
- 二叉树的链表实现
- 二叉树的链表实现
- C++二叉树的链表实现
- 二叉树(二叉链表实现)
- 二叉链表实现二叉树
- [数据结构][二叉链表]二叉树链式存储结构的二叉链表实现
- 线性查找与二分查找(java实现)
- QSystemTrayIcon类学习
- SVN服务器配置说明
- 毕业了,我们干什么?
- org.springframework.orm.hibernate3.HibernateSystemException: a different object with the same identi
- 二叉树的链表实现
- 用javascript 创建ActiveX对象时出现:Automation server can't create object"(Automation 服务器不能创建对). 错误的解决办法
- debian学习笔记6,终端下打开图形操作界面,安装常用软件
- Windows打印
- 想象五年之后的你
- debian6安装openvpn
- 条件锁pthread_cond_t - [Linux]
- Oracle 客户端 使用 expdp/impdp 示例 说明
- HTML特殊符号对照表