创建二叉搜索树
来源:互联网 发布:国内免费php空间 编辑:程序博客网 时间:2024/06/03 19:52
算法描述:
利用两根指针,*pa和*son,
pa指向son的前一个节点,作为son的双亲节点
每次循环son从根节点开始,
如果son的数据域比新建节点数据域大则son=son->left
反之,son=son->right,
直到son指向空为止,
此时pa指针指向的节点就是新节点的双亲节点
判断pa的数据域和p的数据域,进行挂叶子节点
#include<stdio.h>#include<stdlib.h>typedef struct node{ int data; struct node *left; struct node *right;}BTNode;BTNode* binSortTree(int data[], int len){ BTNode *root = NULL, *p = NULL, *pa = NULL, *c = NULL; for (int i = 0; i < len; i++){ p = (BTNode*)malloc(sizeof(BTNode)); p->data = data[i]; p->left = p->right = NULL; if (!root){ root = p; } else{ c = root; while (c){ pa = c; if (p->data < c->data){ c = c->left; } else{ c = c->right; } } if (pa->data < p->data){ pa->right = p; } else{ pa->left = p; } } } return root;}void print(BTNode *root){ if (root){ print(root->left); printf("%5d", root->data); print(root->right); }}
阅读全文
1 0
- 创建二叉搜索树
- 创建搜索二叉树
- 创建二叉搜索树算法
- 二叉搜索树的创建
- 二叉搜索树的创建和遍历
- 二叉搜索树的创建及其遍历
- 用类创建二叉搜索树
- 二叉搜索树的创建 查找 删除
- 创建二叉树 树的深度搜索 广度搜索
- 二叉搜索树的非递归创建和搜索
- Java创建二叉搜索树,实现搜索,插入,删除操作
- 二叉搜索树的创建,插入式创建4.1
- 二叉搜索树的创建,结点删除和查找(二叉搜索树)
- 【二叉树】二叉搜索树与完全二叉树的创建和操作
- 二叉树的创建、遍历及搜索(C实现)
- 二叉查找树的创建,插入,搜索,查询后继
- 二叉搜索树的创建、遍历、插入、删除(C++版本)
- 从二叉搜索树创建双向有序链表
- 一个python文档字符串处理小例子
- 51nod 1096 距离之和最小
- 【dp】leetcode 115. Distinct Subsequences
- No found sqlite3.h
- 监控打电话与通话一段时间后自动挂断
- 创建二叉搜索树
- 小型的图片爬虫——男生必备
- PAT乙级 1067. 试密码(20)
- SPOJ3267【莫队算法/】
- 虚拟机类加载过程
- swift-滑动条
- python自动发送短信
- I/O多路转接-----poll
- Oracle 表空间操作