簡體   English   中英

包含多個數組的二叉樹結構

[英]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直到. 並將namenumber 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM