嘿,任何人都可以解释如何使用C语言中的插入排序来排序二叉树,其中时间复杂性是一个问题。我只是学习编码。感谢你们!C中的二叉树插入排序
回答
如果您以传统意义对二叉树进行编码,那么当您将项目添加到树中时,它将保留排序顺序。您可以通过遍历树来获得完整的项目列表。我建议你阅读:
感谢您的信息。 – SaM 2013-02-22 03:22:40
@萨姆,没问题。很高兴为您指出正确的方向。 – 2013-02-22 14:58:31
值得一提的是,有一定的术语,用在这里。 A 二叉树是一个数据结构,每个节点至多有两个孩子。对于二叉树中节点的排序没有约定。
甲二叉查找树是二叉树,使得对于给定的一个节点N中的N左子树的所有节点被认为是N和以N的右子树的所有节点“小于”被认为是大于” “N.你也可以让节点在树中被认为”等于“N,只要你一致地将它们定义为放置在左子树或右子树中。
正如其他人所说的,最好的办法是修改代码来构造二叉搜索树而不是普通的二叉树,或者将二叉树转换为线性数据结构并对其进行排序。
#include <stdio.h>
#include <malloc.h>
#define FIN "algsort.in"
#define FOUT "algsort.out"
struct Node {
int val;
struct Node *left;
struct Node *right;
};
typedef struct Node node;
void insert(node **bt, node *Node) {
if(!(*bt)) {
*bt = Node;
} else {
if(Node->val < (*bt)->val)
insert(&((*bt)->left), Node);
else
insert(&((*bt)->right), Node);
}
}
void printout(struct Node *node) {
if(node->left) printout(node->left);
printf("%d ", node->val);
if(node->right) printout(node->right);
}
void postorder(struct Node *node) {
if(node->left) printout(node->left);
if(node->right) printout(node->right);
printf("%d ", node->val);
}
int main() {
int i, n, elem;
node *curr;
freopen(FIN, "r", stdin);
freopen(FOUT, "w", stdout);
node *bt = NULL;
scanf("%d", &n);
for(i = 0; i < n; ++i) {
scanf("%d", &elem);
curr = malloc(sizeof(struct Node));
curr->val = elem;
curr->left = NULL;
curr->right = NULL;
insert(&bt, curr);
}
printout(bt);
return(0);
}
假设algsort.in包含整数数组如下:
algsort.int - > 9,8,7,6,5,4,3,2,0,1, - 1;
algsort.out - > -1,0,1,2,3,4,5,6,7,8,9
- 1. 插入二叉树不排序输入
- 2. C中的递归二叉树插入
- 3. 二叉树插入
- 4. 在C++中插入到二叉树中
- 5. 在二叉树中插入
- 6. 将排序后的数组插入到二叉查找树中
- 7. 有序的二叉树插入
- 8. 节点插入二叉树C++
- 9. 排序二叉树F#
- 10. 二叉树插入根
- 11. 递归二叉树插入
- 12. 递归二叉树插入
- 13. 插入节点二叉树
- 14. 二叉树插入算法
- 15. 二叉树不插入
- 16. 二叉搜索树插入
- 17. 插入二叉树(级别顺序)
- 18. 二叉树的C++程序
- 19. 插入二进制搜索树vs二叉树插入
- 20. 二叉树 - 插入到非空树
- 21. 二次二叉树插入段错误
- 22. C程序:二叉树
- 23. c中按字母顺序排序的二叉搜索树?
- 24. 在二叉树中插入元素
- 25. 将值插入C中的二叉搜索树中?
- 26. C中的二叉树
- 27. C中的二叉树
- 28. 排序的二叉树遍历结果
- 29. 插入/添加二叉树的方法
- 30. 用于二叉树的递归插入
二叉树怎么可能出现乱码? – StoryTeller 2013-02-21 23:30:08
如果您刚开始学习编码,请在二叉树之前先尝试其他一些数据结构! – Paschalis 2013-02-21 23:31:52
@StoryTeller,给你一个投票。正如他所说,他只是在学习,所以他可能不熟悉遍历树木。 – 2013-02-21 23:49:46