二叉查找树<链表实现>
来源:互联网 发布:c语言程序员工资 编辑:程序博客网 时间:2024/06/07 22:03
thinking:第一个结点作为根结点,然后接下来每个结点与根结点对比,如大于根结点则放右边,小于根结点则放左边,然后比较下一个结点,知道遇到空节点则储存、
输入样例:
9
6 3 8 5 2 9 4 7 10
输出样例:(前序遍历)
6 3 2 5 4 8 7 9 10
代码:
#include <stdlib.h>#include <iostream>using namespace std;struct tree{tree *left;tree *right;int data;};typedef struct tree *b_tree;b_tree insert(b_tree root,int node){b_tree parentnode;b_tree newnode;b_tree currentnode;newnode=(b_tree)malloc(sizeof(tree));newnode->data=node;newnode->right=NULL;newnode->left=NULL;if(root==NULL)return newnode;else{currentnode=root;while(currentnode!=NULL){parentnode=currentnode;if(currentnode->data>node)currentnode=currentnode->right;elsecurrentnode=currentnode->left;}if(parentnode->data>node)parentnode->right=newnode;elseparentnode->left=newnode;}return root;}b_tree creat(int *node,int len){b_tree root=NULL;for(int i=1;i<=len;i++)root=insert(root,node[i]);return root;}void print(b_tree root){if(root!=NULL){printf("%d ",root->data);print(root->right);print(root->left);}}int main(){freopen("in.txt","r",stdin);int i,n;cin >> n;b_tree root;int node[n+1];for(i=1;i<=n;i++)cin >> node[i];root=creat(node,n);print(root);return 0;}
0 0
- 查找二叉树-链表实现
- 二叉查找树<链表实现>
- 二叉查找树实现类——二叉链表
- 用二叉链表实现二叉查找树(二)
- 二叉查找树实现
- 二叉查找树实现
- 二叉查找树实现
- 二叉查找树实现
- 二叉查找树转双向链表JAVA实现
- 查找--二叉查找树分析与实现
- JAVA二叉查找树实现
- 二叉查找树代码实现
- 二叉查找树 ADT实现
- java实现二叉查找树
- 二叉查找树 java实现
- 二叉查找树实现排序
- 【二叉查找树】c实现
- 二叉查找树 BinarySearchTree 实现
- 网卡队列 irq绑定
- 《React-Native系列》43、通用容器和导航设计方案
- 你还在做仰卧起坐吗?
- 一致性非锁定读与一致性锁定读
- Linux 下清空或删除大文件内容的5中方法
- 二叉查找树<链表实现>
- 【MongoDb探究】01-mongodb是神马
- Redis实现缓存,你应该懂的哪些思路!
- 记录安卓模拟器 Genymotion 使用过程中遇到的一些问题
- static用法
- Hibernate2与Hibernate3的区别
- 电子小制作:电烙铁恒温控制器
- 行人检测2
- 单点登录原理与简单实现