#include<iostream>
#include<queue>
#include<math.h>
#define size 10000
using std:: cin;
using std:: cout;
using std:: queue;
using std:: string;
struct node{
struct node *left_child;
string data;
struct node *right_child;
};
typedef struct node Node;
queue<Node*> q;
void to_infix();
void add(int num,Node **first);
int main(void){
int num;
cin >> num;
Node *a;
add(num,&a);
// to_infix();
return 0;
}
void add(int num,Node **first){
Node *current;
string infix;
for(int i=0;i<pow(2,num)-1;i++){
current=(Node *) malloc(sizeof(Node));
cin >> infix;
current->data=infix;//這邊這邊這邊(我不知道怎麼設定行數
current->left_child=NULL;
current->right_child=NULL;
q.push(current);
if(i==0){
(*first)=current;
}else if(!q.empty()){
if(q.front()->left_child==NULL){
q.front()->left_child=current;
}else if(q.front()->right_child==NULL){
q.front()->right_child=current;
q.pop();
}
}
}
while(!q.empty()){
q.pop();
}
}
在建一個tree時,原本node的int data想改用string,cin 時卻遇到segmentation default的問題,麻煩各位大老指點??
同學你好 我也覺得這很神奇,但我個人認為c++配置記憶體使用new()會比較保險,我個人把你的malloc()帶換成new()後能成功運行