2023年山西省資料總結大綱

2022-11-10 00:15:07 字數 893 閱讀 7275

1、將頂點放在兩個集合v1和v2。對每個頂點,檢查其和鄰接點是否在同乙個集合中,如是,則為非二部圖。為此,用整數1和2表示兩個集合。再用一佇列結構存放圖中訪問的頂點。

int bpgraph (adjmatrix g)

//判斷以鄰接矩陣表示的圖g是否是二部圖。

//初始化,各頂點未確定屬於那個集合

q[1]=1; r=1; s[1]=1;//頂點1放入集合s1while(f //鄰接點入佇列else if (s[j]==s[v]) return(0);} //非二部圖}//if (!visited[v])}//while

return(1); }//是二部圖

[演算法討論]題目給的是連通無向圖,若非連通,則演算法要修改。

2、證明由二叉樹的中序序列和後序序列,也可以唯一確定一棵二叉樹。當n=1時,只有乙個根結點,由中序序列和後序序列可以確定這棵二叉樹。設當n=m-1時結論成立,現證明當n=m時結論成立。

設中序序列為s1,s2,,sm,後序序列是p1,p2,,pm。因後序序列最後乙個元素pm是根,則在中序序列中可找到與pm相等的結點(設二叉樹中各結點互不相同)si(1≤i≤m),因中序序列是由中序遍歷而得,所以si是根結點,s1,s2,,si-1是左子樹的中序序列,而si+1,si+2,,sm是右子樹的中序序列。

若i=1,則s1是根,這時二叉樹的左子樹為空,右子樹的結點數是m-1,則和可以唯一確定右子樹,從而也確定了二叉樹。若i=m,則sm是根,這時二叉樹的右子樹為空,左子樹的結點數是m-1,則和唯一確定左子樹,從而也確定了二叉樹。

最後,當1node;int n2,nl,nr,n0;void count(node *t)

26.樹的先序非遞迴演算法。void example(b)btree *b;

if (p->lchild!=null)(3)___; (4)__;}}}}

2023年山西省資料總結大綱

1 設t是給定的一棵二叉樹,下面的遞迴程式count t 用於求得 二叉樹t中具有非空的左,右兩個兒子的結點個數n2 只有非空左兒子的個數nl 只有非空右兒子的結點個數nr和葉子結點個數n0。n2 nl nr n0都是全域性量,且在呼叫count t 之前都置為0.typedef struct no...

2023年山西省資料總結大綱

1 設t是給定的一棵二叉樹,下面的遞迴程式count t 用於求得 二叉樹t中具有非空的左,右兩個兒子的結點個數n2 只有非空左兒子的個數nl 只有非空右兒子的結點個數nr和葉子結點個數n0。n2 nl nr n0都是全域性量,且在呼叫count t 之前都置為0.typedef struct no...

2023年山西省資料總結大綱

1 連通圖的生成樹包括圖中的全部n個頂點和足以使圖連通的n 1條邊,最小生成樹是邊上權值之和最小的生成樹。故可按權值從大到小對邊進行排序,然後從大到小將邊刪除。每刪除一條當前權值最大的邊後,就去測試圖是否仍連通,若不再連通,則將該邊恢復。若仍連通,繼續向下刪 直到剩n 1條邊為止。void spnt...