將xml檔案中的每一層的資料提取出來並儲存到二叉樹中;
遍歷二叉樹中的資料按xml原格式列印到螢幕;
將儲存在二叉樹中的資料按照xml檔案格式輸出到新的檔案中。
每乙個結點包含資料域和指標域。資料域為xml每一層每乙個結點儲存的資料和結點的名字。指標域包含兄弟結點和子節點,兄弟結點指向xml檔案中該節點同一層相同等級的下乙個結點,子節點指向該節點的子節點。
具體實現見**。
#ifndef _mxml_h_
#define _mxml_h_
#define maxsize 20
//二叉樹結點結構體
typedef struct node
node;
/* *function : node_create
*description: 新建結點,並將資料域賦值
*param in : data 內容資料首位址
name 標籤名稱首位址
*param out : 無
*retrun : pnode 新建結點的位址
*/node *node_create(char *data, char *name);
/* *function : insert
*description: 插入結點到二叉樹中
*param in : flag 0: 插入到當前指標所指結點的兄弟結點
1: 插入到當前指標所指結點的子結點
pnow 當前指標
pnode 待插入的結點
*param out : 無
*retrun : 無
*/void insert(int flag, node *pnow, node *pnode);
/* *function : node_search
*description: 根據標籤名稱查詢結點,列印出資料內容
*param in : tree 二叉樹頭結點位址
*param out : 無
*retrun : 無
*/void node_search(node *tree, char name);
/* *function : tree_print
*description:
*param in : tree 二叉樹頭結點位址
*param out : 無
*retrun : 無
*/void tree_print(node *tree);
/* *function : tree_print_form
*description: 列印(遍歷)二叉樹儲存的資訊,格式有縮排輸出
*param in : tree 二叉樹頭結點位址
*param out : 無
*retrun : 無
*/void tree_print_form(node *tree);
/* *function : xml_tree_destroy
*description: 銷毀二叉樹,釋放各個結點記憶體
*param in : ptree 待銷毀的二叉樹頭結點指標的位址
*param out : 無
*retrun : 無
*/void xml_tree_destroy(node **ptree);
/* *function : xml_restore
*description: 根據二叉樹儲存的資訊,還原xml檔案(資料有縮排)
*param in : tree 二叉樹頭結點位址
fp 待還原的xml檔案的位址
*param out : 無
*retrun : 無
*/void xml_restore(node *tree,file *fp);
/* *function : xml_tree_create
*description: 讀取xml檔案資料,儲存到新建的二叉樹中
*param in : fp 待讀取的xml檔案的位址
*param out : 無
*retrun : pnow 二叉樹頭結點位址
*/node *xml_tree_create(file *fp);
#endif
結合案例深入解析模板方法設計模式
模板方法模式是類的行為模式。準備乙個抽象類,將部分邏輯以具體方法以及具體建構函式的形式實現,然後宣告一些抽象方法來迫使子類實現剩餘的邏輯。不同的子類可以以不同的方式實現這些抽象方法,從而對剩餘的邏輯有不同的實現。這就是模板方法模式的用意。例如 在現實生活中,完成某件事情是需要 n 個固定步驟的。如 ...
設計模式解析
在之前的學習中初步的了解了基本設計模式,但是在使用方面很多地方考慮的不夠仔細,經驗方面也有很多不足之處。現在正好利用一些時間把設計模式重新整理一下。先列一下基本設計模式的知識點 1 物件導向的六大原則 2 基本設計模式 建立型模式,共五種 工廠方法模式 抽象工廠模式 單例模式 建造者模式 build...
解析設計模式
區分fa ade模式 adapter模式 bridge模式與decorator模式。fa ade模式注重簡化介面,adapter模式注重轉換介面,bridge模式注重分離介面 抽象 與其實現,decorator模式注重穩定介面的前提下為物件擴充套件功能 23種常見的設計模式 建立型factory m...