二叉树的实现(2)链表
来源:互联网 发布:映射网络驱动器 本机 编辑:程序博客网 时间:2024/06/15 19:42
本文是接上一篇文章写得。
这个结构体存放了树根的数据,以及指向左子树和右子树的指针。
struct tree
{
int data;
struct tree *left;
struct tree *right;
};
主要用三个函数
btree insert_node( btree root ,int value)
btree creatbtree( int *data,int len )
void printbtree(btree root)
完成实现。
接下来是实现的过程
#include<stdio.h>#include<stdlib.h>struct tree{ int data; struct tree *left; struct tree *right;};typedef struct tree treenode;typedef treenode *btree;btree insert_node( btree root ,int value) { btree newnode; btree current; btree back; newnode = (btree ) malloc(sizeof(treenode)); newnode->data = value; newnode->left = NULL; newnode->left = NULL; if( root == NULL ) { return newnode; } else { current = root; while(current != NULL ) { back = current; if( current->data > value ) current = current->left; else current = current->right; } if(back->data > value) back->left =newnode; else back->right =newnode; } return root; }btree creatbtree( int *data,int len ){ btree root = NULL; int i; for( i = 0; i < len ; i++) { root = insert_node( root , data[i] ); } return root;}void printbtree(btree root) { btree ptr; ptr = root->left; printf("输出左子树\n"); while( ptr != NULL ) { printf("[%2d]\n",ptr->data); ptr = ptr->left; } ptr = root->right; printf("输出右子树\n"); while( ptr != NULL ) { printf("[%2d]\n",ptr->data); ptr = ptr->right; } }int main(){ btree root = NULL; int data[10] ={5,6,4,8,2,3,7,1,9}; root = creatbtree(data,9); printf("树的结点内容\n"); printbtree(root); return 0 ; }
0 0
- 二叉树的实现(2)链表
- 二叉树的实现
- 二叉树的实现
- 二叉树的实现..
- 二叉树的实现
- 二叉树的实现
- 二叉树的实现
- 二叉树的实现
- 二叉树的实现
- 二叉树的实现
- 二叉树的实现
- 二叉树的实现
- 二叉树的实现
- 二叉树的实现
- 二叉树的实现
- 二叉树的实现
- 二叉树的实现
- 二叉树的实现
- android switch语句中报出case expressions must be constant expressions
- highcharts动态刷新数据,得先清空上一个数据,不然会出现前一个图形和新数据的图形重合
- Nosql 8种Nosql数据库系统对比
- linux 书籍
- windows下TimesTen的配置及使用
- 二叉树的实现(2)链表
- MATLAB中将彩色的图像转化为灰度图像
- 访问者电脑的分辨率
- ASP.NET发送ICQ消息DIY
- Microsoft.Net中数字签名技术
- 采用python批量统计分析Excel表格数据
- iMatrix平台新版本6.0.0Dev功能更新说明
- Android Gson 解析
- 什么是手机定位,手机定位在生活中带来哪些作用