二叉排序树的建立和遍历(递归实现)
来源:互联网 发布:淘宝卖家聊天术语 编辑:程序博客网 时间:2024/05/21 14:43
#include <stdio.h>#include <stdlib.h>typedef struct node node;struct node{ int data; node *pleft; node *pright;};node* creat_node(int value);//创建节点void add_node(int value,node *pnode);//增加节点void list_nodes(node *pnode);//输出数据void free_nodes(node *pnode);//释放内存int main(){ int n; node *proot = NULL; while(~scanf("%d",&n)) { if(!proot) proot = creat_node(n); else add_node(n,proot); } list_nodes(proot); free_nodes(proot); return 0;}node *creat_node(int value){ node *temp = (node*)malloc(sizeof(node)); temp->data = value; temp->pleft = temp->pright = NULL; return temp;}void add_node(int value,node *pnode){ if(value < pnode->data) if(!pnode->pleft) pnode->pleft = creat_node(value); else add_node(value,pnode->pleft); else if(!pnode->pright) pnode->pright = creat_node(value); else add_node(value,pnode->pright);}void list_nodes(node *pnode){ if(pnode->pleft) list_nodes(pnode->pleft); printf("%d ",pnode->data); if(pnode->pright) list_nodes(pnode->pright);}void free_nodes(node *pnode){ if(!pnode) return; if(pnode->pleft) free_nodes(pnode->pleft); if(pnode->pright) free_nodes(pnode->pright); free(pnode);}
1 0
- 二叉排序树的建立和遍历(递归实现)
- JAVA二叉排序树的建立,遍历(递归,非递归)
- 二叉排序树的建立和遍历
- 二叉排序树的建立和遍历
- 二叉排序树的建立和遍历
- 二叉排序树的建立和遍历
- 二叉排序树的建立和遍历(java)
- 二叉排序树的建立和先序遍历和层次遍历问题之java实现
- 二叉树的建立和遍历(递归、非递归)
- java语言实现二叉排序树(结点的增、删、查、改,递归、非递归遍历)
- 二叉排序树的建立与遍历
- 如何使用非递归算法实现二叉排序树的建立
- //二叉树的(二叉排序树)建立和先序遍历
- 二叉排序树(BST):建立,遍历(前中后),判定,查找(递归+非递归)
- 二叉排序树的建立和各种遍历方法-java(附详细注释和单元测试)
- HDOJ 3791 二叉搜索树(二叉排序树的建立和遍历)
- 二叉树的建立和遍历(递归)
- 二叉树的递归建立和遍历
- 你真的会写简历么?
- ScrollView嵌套WebView,整体页面滑动加textview
- java中的Arrays类
- C语言库函数四
- Junit
- 二叉排序树的建立和遍历(递归实现)
- 中文中的面向对象
- leetcode 17. Letter Combinations of a Phone Number
- 我的iOS开发入门自学路径
- JS实现鼠标移入移出控制图片的切换效果
- css各种居中
- Problem D: 链表的基本运算(线性表)
- 南阳题目125-盗梦空间
- 《C++》01 数据类型