[英]Binary Tree Struct containing Multiple Arrays
就像免責聲明一樣,我並不是在尋找任何硬代碼解決方案,而只是在朝着正確的方向前進。
本質上,我需要創建一個樹,該樹在每個Node中包含兩個數據數組和兩個單獨的char數組。
struct Node {
char *name;
char *number;
struct Node *left;
struct Node *left;
};
這是我目前的結構,輸入形式為:
name number
name number
name number
.
的.
作為終止,現在,我有一個理論來解析它,即getchar
直到.
並將name
和number
scanf
到一個數組中。 但是從這一點來看,我不確定將這些數組傳遞給函數以將東西添加到樹中,定義數組的大小等的確切方式。有人可以針對此問題給出一些提示嗎?
首先,您需要使用動態內存。 數組的大小將在運行時在您讀取它們之后從我猜想的文件中定義。
如果您讀取的char*
以空字符結尾(即最后一個字符為'\\ 0'),則可以使用strlen
函數獲取其大小,然后將該值傳遞給malloc
以便在使用strcpy
之前分配內存將字符串復制到該內存中。 別忘了free
調用以返回您malloc
的所有內容
因此,只需將兩個char*
傳遞給將它們插入您的數據結構中的函數(是二叉樹還是try?您在標題中使用了一個術語,而在問題中使用了另一個術語)
在Google中搜索“ C二叉樹教程”:
http://www.cprogramming.com/tutorial/c/lesson18.html
我會做一個堆棧類型:
typedef struct
{
int pos;
char *array;
int size;
} charArray;
charArray *newCharArray();
void pushCharArray(charArray * ca, char c);
void popCharArray(charArray *ca);
charStack *name;
charStack *number;
在pushCharArray內部,您應該檢查ca是否為null,如果需要更多空間,則增加大小,增加位置...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.