我無法創建一個C++函數,將插入一項是按字母順序排序二叉樹。插入到一個有序的二叉搜索樹
插入函數應該像這樣的工作:提示用戶輸入一個數字。這個數字將指出要輸入多少本書。然後輸入本書的標題和URL(定義爲結構),並根據標題的第一個字母將書籍按字母順序插入樹中。
我定義了這樣一本書,其中標題和URL字符數組:
struct bookNode {
char title[30];
char url[40];
char key;
bookNode *left;
bookNode *right;
} book;
而且這是我迄今爲止的插入功能:
void insertBook() {
struct bookNode *p, *q;
int i, n;
char key;
cout << "Enter the number of books you want to add" << endl;
cin >> n;
for(i=0;i<n;i++) {
p = (struct bookNode *)malloc(sizeof(struct bookNode));
if(p==0)
cout << "Out of Memory" << endl;
cout << "Enter the title of the book" << endl;
cin.getline(book.title, 30);
key = book.title[0];
cout << "Enter the url of the book" << endl;
cin.getline(book.url, 40);
p->key; //I'm not sure if these next 3 lines are right
p->left=0;
p->right=0;
...
}
}
我想我可能不得不聲明某種指向樹根的指針,但我不知道該把它放在哪裏。而且我也意識到我需要寫一個單獨的「搜索」功能,我將在此插入函數調用,以找到實際插入的書,但我只是在尋找幫助完成這個插入功能。
每個節點都有一個「父」指針是正常的。 – 2012-03-14 20:27:47
爲什麼在C++代碼中使用'malloc'?另外,你爲什麼要將數據讀入'book'? – 2012-03-14 20:28:27
@MooingDuck我不確定讀入書的數據是否正確。我只是不確定如何初始化一本書。我是一個新手: -/ – aclark 2012-03-14 20:33:34