二叉树排序为什么没输出!!!
  • 板块题目总版
  • 楼主QinKanghua
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/8/16 22:18
  • 上次更新2024/8/17 09:55:46
查看原帖
二叉树排序为什么没输出!!!
1365308
QinKanghua楼主2024/8/16 22:18

好像陷入了死循环

#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
struct st {
   int data, left, right;
} a[10000];
void print(int p) {
   if (p != 0) {
   	print(a[p].left);
   	cout << a[p].data << " ";
   	print(a[p].right);
   }
   return;
}
void insert(int k) {  //在树中插入第k个数
   int p = 1;//节点 从根节点开始遍历
   while (p > 0) {//遍历的节点不为空
   	if (a[k].data <= a[p].data) {//将a[k]插入到p为根节点的树的左子树上
   		if (a[p].left == 0) {//p的左子树为空,直接插入
   			a[p].left = k;
   			p = 0;
   		}
   		else {
   			p = a[p].left;
   		}
   	}
   	else {
   		if (a[p].right == 0) {//将a[k]插入到p为根节点的树的右子树上
   			a[p].right = k;
   			p = 0;
   		}
   		else {
   			p = a[p].right;
   		}
   	}
   }
   return;
}
int main() {
   int n, m; 
   cin >> n;
   for (int i = 1; i <= n; i++) cin >> a[n].data;
   for (int i = 1; i <= n; i++) insert(i);
   print(1);
   return 0;
}                               
2024/8/16 22:18
加载中...