0
프로그래밍 클래스의 숙제를 위해 C에서 이진 검색 트리를 구현하는 중입니다. 이 많은 코드를 작성하고 Visual Studio 2010에서 컴파일하면 많은 오류가 발생합니다.구문 이진 탐색 트리 (C) 구현시 오류
비슷한 오류가 발생하여 문제가 무엇인지 파악하기에 충분하지 않은 사람들을 온라인으로 살펴 보았습니다.
/*This code will implement a binary search tree based on 20
user-inputed integers. It will then implement a search,
insert, delete, and traverse function. */
#include <stdio.h>
#include <stdlib.h>
#define ARRSIZE 20
/*------ TYPE DEFINITIONS ------*/
typedef struct node
{
int data;
node* left;
node* right;
};
typedef struct tree
{
int count;
node* root;
};
/*------ FUNCTION DECLARTATIONS ------*/
void InitializeTree (tree* ptree);
int insert (int data, tree* ptree);
void place (node* root, node* new_node);
/*------ MAIN FUNCTION ------*/
int main (void)
{
int i, check, arr[ARRSIZE];
tree BST;
InitializeTree(&BST);
printf("Enter 20 integers for a list.\n");
for(i=0; i<ARRSIZE; i++)
{
printf("Integer %d:\n", i+1);
scanf("%d", &arr[i]);
check = insert(arr[i], &BST);
if(check == 0)
{
printf("Error in creating node.\n");
exit(1);
}
}
return 0;
}
/*
*
* ADDITIONAL FUNCTIONS
*
*/
/*------ CREATION FUNCTIONS ------*/
void InitializeTree (tree* ptree)
{
ptree = (tree*) malloc(sizeof(tree));
ptree->count = 0;
}
int insert (int data, tree* ptree)
{
node* new_node;
new_node = (node*) malloc(sizeof(node));
if(new_node == NULL)
{
printf("Couldn't create a node.\n");
return 0;
}
new_node->data = data;
ptree->count++;
if(ptree->root == NULL)
{
ptree->root = new_node;
}
else
{
place(ptree->root, new_node);
}
return 1;
}
void place (node* root, node* new_node)
{
if(new_node->data < root->data)
{
if(root->left == NULL)
{
root->left = new_node;
}
else
{
place(root->left, new_node);
}
}
else
{
if(root->right == NULL)
{
root->right = new_node;
}
else
{
place(root->right, new_node;
}
}
}
오류는 다음과 같이 : 여기
코드입니다1>bin-tree.c(16): error C2061: syntax error : identifier 'node'
1>bin-tree.c(17): error C2143: syntax error : missing '{' before '*'
1>bin-tree.c(18): error C2059: syntax error : '}'
1>bin-tree.c(23): error C2061: syntax error : identifier 'node'
1>bin-tree.c(24): error C2059: syntax error : '}'
1>bin-tree.c(28): error C2143: syntax error : missing ')' before '*'
1>bin-tree.c(28): error C2143: syntax error : missing '{' before '*'
1>bin-tree.c(28): error C2059: syntax error : ')'
1>bin-tree.c(29): error C2143: syntax error : missing ')' before '*'
1>bin-tree.c(29): error C2081: 'tree' : name in formal parameter list illegal
1>bin-tree.c(29): error C2143: syntax error : missing '{' before '*'
1>bin-tree.c(29): error C2059: syntax error : ')'
1>bin-tree.c(30): error C2143: syntax error : missing ')' before '*'
1>bin-tree.c(30): error C2143: syntax error : missing '{' before '*'
1>bin-tree.c(30): error C2143: syntax error : missing ';' before '*'
1>bin-tree.c(30): error C2059: syntax error : ')'
1>bin-tree.c(37): error C2065: 'tree' : undeclared identifier
1>bin-tree.c(37): error C2146: syntax error : missing ';' before identifier 'BST'
1>bin-tree.c(37): error C2065: 'BST' : undeclared identifier
1>bin-tree.c(39): warning C4013: 'InitializeTree' undefined; assuming extern returning int
1>bin-tree.c(39): error C2065: 'BST' : undeclared identifier
1>bin-tree.c(47): warning C4013: 'insert' undefined; assuming extern returning int
1>bin-tree.c(47): error C2065: 'BST' : undeclared identifier
1>bin-tree.c(66): error C2143: syntax error : missing ')' before '*'
1>bin-tree.c(66): error C2143: syntax error : missing '{' before '*'
1>bin-tree.c(66): error C2059: syntax error : ')'
1>bin-tree.c(67): error C2054: expected '(' to follow 'ptree'
1>bin-tree.c(72): error C2143: syntax error : missing ')' before '*'
1>bin-tree.c(72): error C2081: 'tree' : name in formal parameter list illegal
1>bin-tree.c(72): error C2143: syntax error : missing '{' before '*'
1>bin-tree.c(72): error C2059: syntax error : ')'
1>bin-tree.c(73): error C2054: expected '(' to follow 'ptree'
1>bin-tree.c(99): error C2143: syntax error : missing ')' before '*'
1>bin-tree.c(99): error C2143: syntax error : missing '{' before '*'
1>bin-tree.c(99): error C2143: syntax error : missing ';' before '*'
1>bin-tree.c(99): error C2059: syntax error : ')'
1>bin-tree.c(100): error C2054: expected '(' to follow 'new_node'
사람은 수많은 오류의 원인이 될 수있는 무엇을 알고 있나요?
typedef struct node
{
int data;
node* left;
node* right;
};
typedef struct tree
{
int count;
node* root;
};
에 :
나는했으나 여전히 같은 오류가 발생합니다. – Zelmec
* 모든 변경 사항을 * 확실하게 작성 했습니까? 대답에서 강조 표시 할 것입니다 ... –
원본 코드 118 행에 누락 된 괄호가 있습니다. 주어진 대답과 함께 변경하십시오. –