main主函式:
#include #include "tree.h"
int main()
樹的.c檔案
#include "tree.h"
#include #include #include tree* tree_create()
/*初始化新結點引數:
data = data
len = 0;
next = null
childlist:新建子節點鍊錶的頭節點,初始化相應引數
parent:
找到雙親結點,如果找到:在雙親結點的子節點鍊錶中新建子節點
子節點引數:next = null childnode = node;
將新的子結點尾插進雙親結點的子結點鍊錶當中
雙親結點的度 要 +1
*/int tree_insert(tree* tree, treedata data, int pos)
// 如果雙親結點存在,就加入到雙親結點的子結點鍊錶中
if (parent != null)
// 將新結點插入到樹的鍊錶中
treenode* tmp = tree->head;
while(tmp->next)
tmp = tmp->next;
tmp->next = node;
tree->len++;
return 1;
}void r_display(treenode *node ,int gap)
printf("%c\n",node->data);
childnode *child = node->childlist->next;
while(child) }
void display(tree *tree)
樹的.h檔案
#ifndef __tree_h__
#define __tree_h__
struct _treenode; // 型別宣告
typedef char treedata;
// 孩子結點型別
typedef struct _childnode
childnode;
typedef struct _treenode
treenode;
typedef struct _tree
tree;
// 建立通用樹
tree* tree_create();
// 也就是說 根節點的位置 是 0
int tree_insert(tree* tree, treedata data, int pos);
void display(tree *tree);
void r_display(treenode *node ,int gap);
#endif // __tree_h__
C語言程式設計 程式的記憶體布局
一 c語言程式的儲存區域 由c語言 文字檔案 形成可執行程式 二進位制檔案 需要經過編譯 彙編 連線三個階段。編譯過程把c語言文字檔案生成匯程式設計序,彙編過程把匯程式設計序形成二進位制機器 連線過程則將各個原始檔生成的二進位制機器 檔案組合成乙個檔案。c語言編寫的程式經過編譯 連線後,將形成乙個統...
C語言程式設計 C語言整數逆序輸出程式!
將乙個從鍵盤輸入的整數存放到乙個陣列中,通過程式的執行按照陣列中的逆序輸出該整數,利用遞迴的方法解決問題。設計函式實現資料的逆序存放,設定形引數組接收實參陣列的位址,來儲存資料的每一位。函式體採用遞迴的方式解決問題,因此考慮遞迴進行的條件。例如,把資料 n 存放到陣列 s 中,若 n 是一位數,則存...
判斷閏年的c語言程式 C語言程式設計例項4
漁夫打魚曬網問題 如果乙個漁夫從 2011 年 1 月 1 日開始每三天打一次漁,兩天曬一次網,程式設計實現當輸入 2011年1 月 1 日以後的任意一天,輸出該漁夫是在打漁還是在曬網。1 自定義函式 leap 用來判斷輸入的年份是否是閏年。2 自定義函式 number 用來計算輸入日期距 2011...