[問題] class
請問一下
讀入一個檔內容為:
I A B C
CN
I B E F
I F G H
CN
主程式:
void main(){
FILE *fp;
char buffer[100];
char command[100];
char data1[100];
char data2[100];
char data3[100];
tree T;
if((fp = fopen("testfile11.txt", "rt"))==NULL){
cout<<"File could not opened\n";
}
else{
while(!feof(fp)){
fgets(buffer, sizeof(buffer), fp);
sscanf(buffer, "%s%s%s%s",command,data1,data2,data3);
if(strcmp(command,"I")==0){
T.insert(data1,data2,data3);
}
}
T.traverse(IN_ORDER);
}
}
若是I指令把它接下去的三個字母insert進去..
但是每執行一個insert指令他的root會重新跑到data1,而不是繼續之前所建的tree
EX:讀入I A B C root為A沒錯
讀入I B E F root變為B而不是原本的A
----------------------------------------------------------------------------
但是如果
void main(){
FILE *fp;
char buffer[100];
char command[100];
char data1[100];
char data2[100];
char data3[100];
tree T;
if((fp = fopen("testfile11.txt", "rt"))==NULL){
cout<<"File could not opened\n";
}
else{
T.insert("A","B","C");
T.insert("B","E","F");
T.insert("F","G","H");
T.traverse(IN_ORDER);
}
}
直接插入的話是可以的root不會跑掉
有誰可以告訴我為什麼嗎?
麻煩大家了><
tree實作
tree::tree(void)
{
root = current = 0;
}
void tree::insert(element a,element b,element c)
{
if (root == 0)
{
root = new node(a);
root->left = new node(b);
root->right = new node(c);
}
else{
node *t = findNode(a);
t->left = new node(b);
t->right= new node(c);
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.121.219.142
推
12/22 10:04, , 1F
12/22 10:04, 1F
討論串 (同標題文章)
Programming 近期熱門文章
PTT數位生活區 即時熱門文章