91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

廣義表與森林相互轉換,森林與二叉樹相互轉換,二叉樹與遍歷序列(先序/中序)相互轉換,森林先根遍歷和后根遍歷

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?

using?namespace?std;
//存有孩子結點索引的單鏈表結點
typedef?struct?TreelinkNode
{
????int?index;
????struct?TreelinkNode?*next;
}?TreelinkNode*pTreelinkNode;
//孩子鏈表結點(樹結點)
typedef?struct?TreeNode
{
????pTreelinkNode?link;
????int?data;
}?TreeNode*pTreeNode;
//森林結點
typedef?struct?FTreeNode
{
????pTreeNode?tree;
????struct?FTreeNode?*next;
}?FTreeNode*pFTreeNode;
//森林鏈表的初始化操作
void?InitFTree(pFTreeNode?&fTree)
{
????fTree?=?(pFTreeNode)malloc(sizeof(FTreeNode));
????fTree->next?=?NULL;
}
//森林鏈表的插入操作
void?InsertFTree(pFTreeNode?&fTreepTreeNode?node)
{
????pFTreeNode?t_node?=?fTree;
????pFTreeNode?newnode??=?(pFTreeNode)malloc(sizeof(FTreeNode));

????while(t_node->next?!=?NULL)
????{
????????t_node?=?t_node->next;
????}

????newnode->tree?=?node;
????t_node->next?=?newnode;
????newnode->next?=?NULL;
}
//廣義表建立樹鏈表(孩子鏈表)
void?GListToTree(pTreeNode?&treeint?¤t_indexint?parent_index)
{
????char?ch;
????pTreelinkNode?newnode;

????pTreelinkNode?link?=?(pTreelinkNode)malloc(sizeof(TreelinkNode));
????link->index?=?current_index;
????link->next?=?NULL;
????tree[parent_index].link?=?link;

????while(true)
????{
????????scanf(“%c“&ch);

????????if(ch?==?‘(‘)
????????{
????????????parent_index?=?current_index;
????????????current_index?++;
????????????scanf(“%d“&tree[current_index].data);
????????????tree[current_index].link?=?NULL;

????????????GListToTree(treecurrent_indexparent_index);
????????}
????????else?if(ch?==?‘‘)
????????{
????????????current_index?++;
????????????scanf(“%d“&tree[current_index].data);
????????????tree[current_index].link?=?NULL;

????????????newnode?=?(pTreelinkNode)malloc(sizeof(TreelinkNode));
????????????newnode->index?=?current_index;
????????????newnode->next?=?NULL;
????????????link->next?=?newnode;
????????????link?=?link->next;
????????}
????????else
????????{
????????????return;
????????}
????}
}
//廣義表組建立森林鏈表
void?GListToFTree(pFTreeNode?&fTree)
{
????char?ch;
????int?current_indexparent_index;
????pTreeNode?tree;
????scanf(“%c“&ch);

????while(ch?!=?‘#‘)
????{
????????current_index?=?-1;
????????tree=(pTreeNode)malloc(50*sizeof(TreeNode));

????????current_index?++;
????????scanf(“%d“&tree[current_index].data);
????????tree[current_index].link?=?NULL;

????????scanf(“%c“&ch);

????????if(ch?!=?‘)‘)
????????{
????????????parent_index?=?current_index;
????????????current_index?++;
????????????scanf(“%d“&tree[current_index].data);
????????????tree[current_index].link?=?NULL;

????????????GListToTree(treecurrent_indexparent_index);
????????????scanf(“%c“&ch);
????????}

????????InsertFTree(fTreetree);
????????scanf(“%c“&ch);
????}
}
//存儲先序遍歷序列記錄的單鏈表結點
typedef?struct?linkNode
{
????int?data;
????struct?linkNode?*next;
}?linkNode*plinkNode;
//單鏈表的初始化
void?InitlinkList(plinkNode?&link)
{
????link=(plinkNode)ma

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

????I.A....?????14183??2012-03-22?22:13??樹與二叉樹\main.cpp

????I..D...?????????0??2012-04-08?11:11??樹與二叉樹

-----------?---------??----------?-----??----

????????????????14183????????????????????2


評論

共有 條評論