二元搜寻树:在节点的两个分支中,比较节点大小并存入左右
#include <stdio.h>
#include <stdlib.h>
typedef struct tree *tree_p;
struct tree {
int data;
tree_p left;
tree_p right;
tree_p back;
} tree;
tree_p root = NULL, ptr, cur;
tree_p add_node(int num);
void inorder(tree_p root);
void creat(int num);
void basic1();
主程序
int main() {
basic1();
inorder(root);
printf("\n------------执行完成------------\n");
creat(6);
printf("\n------------添加节点------------\n");
inorder(root);
printf("\n------------执行完成------------\n");
}
void basic1():基本测资
void basic1() {
creat(4);
creat(2);
creat(9);
creat(1);
creat(3);
creat(7);
creat(5);
creat(8);
}
void creat(int num):插入节点
进入回圈判断,利用回圈判定大小,不断向左右节点移动,当下一个节点为空白时,跳出回圈,并在下一个节点新增。
void creat(int num) {
ptr = root;
cur = root;
if (root == NULL) {
root = add_node(num);
} else {
while (ptr != NULL) {
cur = ptr;
if (ptr->data < num) {
ptr = ptr->right;
} else if (ptr->data > num) {
ptr = ptr->left;
} else {
printf("same");
}
}
//cur会一直跟在ptr的後一格
//在存入节点时,判断大小选择左右
if (cur->data < num) {
cur->right = add_node(num);
cur->right->back = cur;
//顺便新增back节点指向该节点的前一个位置
} else {
cur->left = add_node(num);
cur->left->back = cur;
}
}
}
(中序输出)
<<: 就控制目标(control objectives)而言,那一个是无效的实体控制(the least effective physical control )?
今天就来完成登入验证的部分! 昨天已经完成发送帐号密码到api,验证ok即发送一笔JWT给clien...
您的订阅是我制作影片的动力 订阅点这里~ 影片程序码 ## 应用二: 离群侦测(数值) #### d...
铁人赛到今天刚好过了一半,没有特别规划看到那写到那里,但就是很刚好地花了 10 天的篇幅介绍永丰金流...
紧接着今天我们要来规划各个功能模组的介面了! 首先是登入後的首页,会陈列使用者上传记帐资讯,包含图片...
为什麽会议,大家听不到我声音,却能听到我的音乐啊~~~~ 设来设去...到底怎麽回事啊... 答案是...