C 如何读入文本文件并将值存储到多个二叉树中
对于这个程序,我必须读入一个大约50个数字的文本文件,然后我必须将它们分解(BST的结尾用-1表示)。所以我很确定我用一个链表来表示实际的树数,然后用一个BST来表示实际的树数。然而,我在while循环中遇到了一些麻烦,当a-1是数字时,我无法将树分解。示例输出如下所示C 如何读入文本文件并将值存储到多个二叉树中,c,data-structures,linked-list,binary-tree,binary-search-tree,C,Data Structures,Linked List,Binary Tree,Binary Search Tree,对于这个程序,我必须读入一个大约50个数字的文本文件,然后我必须将它们分解(BST的结尾用-1表示)。所以我很确定我用一个链表来表示实际的树数,然后用一个BST来表示实际的树数。然而,我在while循环中遇到了一些麻烦,当a-1是数字时,我无法将树分解。示例输出如下所示 Tree 1: 5 8 14 15 17 19 20 30 Tree 2: 28 60 65 80 83 86 90 Tree 3: 33 40 41 42 43 45 49 Tree 4: 1 4 13 21 47 72
Tree 1: 5 8 14 15 17 19 20 30
Tree 2: 28 60 65 80 83 86 90
Tree 3: 33 40 41 42 43 45 49
Tree 4: 1 4 13 21 47 72
Tree 5: 16 55 69 77 111
文本文件是
15
8
14
5
19
20
17
30
-1
80
65
60
86
83
90
28
-1
42
45
49
40
43
33
41
-1
13
47
21
72
1
4
-1
55
16
69
77
111
-1
将
insert\u BST
函数替换为:
insert_BST(&(*root)->right, insertValue, treeNum);
及
将print\u BST\u的调用顺序
更改为:
print_BST_inorder(listHead->root);
说明:
(*root)->right
和(*root)->left
属于struct BST*
类型,但是insert\u BST
函数采用struct BST**
,因此您只需要取消引用它们
listfead
属于rootList*
类型,因此*listfead
是rootList
,而print\u BST\u inorder
函数需要一个BST*
,它是该结构的成员root
。这些错误不是很容易解释的吗?它告诉你它期望什么,你给了什么,并说它们不兼容。@Dukeling是的,但我不知道如何修复它们,当我将它们设置为相同的指针类型时,它不起作用,我收到另一个错误,告诉我左右不属于联合体或结构。现在我遇到了一个seg错误。最好在单独的问题中处理编译器错误和运行时问题。
insert_BST(&(*root)->right, insertValue, treeNum);
insert_BST(&(*root)->left, insertValue, treeNum);
print_BST_inorder(listHead->root);