xlm解析方法設計

2021-08-19 06:28:37 字數 2620 閱讀 7009

將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...