1、設有兩個集合a和集合b,要求設計生成集合c=a∩b的演算法,其中集合a、b和c用鏈式儲存結構表示。
typedef struct node lklist;
void intersection(lklist *ha,lklist *hb,lklist *&hc) }}
2、將頂點放在兩個集合v1和v2。對每個頂點,檢查其和鄰接點是否在同乙個集合中,如是,則為非二部圖。為此,用整數1和2表示兩個集合。再用一佇列結構存放圖中訪問的頂點。
int bpgraph (adjmatrix g)
//判斷以鄰接矩陣表示的圖g是否是二部圖。
//初始化,各頂點未確定屬於那個集合
q[1]=1; r=1; s[1]=1;//頂點1放入集合s1
while(f //鄰接點入佇列
else if (s[j]==s[v]) return(0);} //非二部圖
}//if (!visited[v])
}//while
return(1); }//是二部圖
[演算法討論] 題目給的是連通無向圖,若非連通,則演算法要修改。
3、設有一組初始記錄關鍵字序列(k1,k2,…,kn),要求設計乙個演算法能夠在o(n)的時間複雜度內將線性表劃分成兩部分,其中左半部分的每個關鍵字均小於ki,右半部分的每個關鍵字均大於等於ki。
void quickpass(int r, int s, int t)
r[i]=x;
}4、因為後序遍歷棧中保留當前結點的祖先的資訊,用一變數儲存棧的最高棧頂指標,每當退棧時,棧頂指標高於儲存最高棧頂指標的值時,則將該棧倒入輔助棧中,輔助棧始終儲存最長路徑長度上的結點,直至後序遍歷完畢,則輔助棧中內容即為所求。
void longestpath(bitree bt)//求二叉樹中的第一條最長路徑長度
//沿左分枝向下
if(tag[top]==1) //當前結點的右分枝已遍歷
//保留當前最長路徑到l棧,記住最高棧頂指標,退棧
}else if(top>0) //沿右子分枝向下
}//while(p!=null||top>0)
}//結束longestpath
5、對一般二叉樹,僅根據乙個先序、中序、後序遍歷,不能確定另乙個遍歷序列。但對於滿二叉樹,任一結點的左右子樹均含有數量相等的結點,根據此性質,可將任一遍歷序列轉為另一遍歷序列(即任一遍歷序列均可確定一棵二叉樹)。
void pretopost(elemtype pre ,post,int l1,h1,l2,h2)
//將滿二叉樹的先序序列轉為後序序列,l1,h1,l2,h2是序列初始和最後結點的下標。
}//pretopost
32. .葉子結點只有在遍歷中才能知道,這裡使用中序遞迴遍歷。
設定前驅結點指標pre,初始為空。第乙個葉子結點由指標head指向,遍歷到葉子結點時,就將它前驅的rchild指標指向它,最後葉子結點的rchild為空。
linkedlist head,pre=null; //全域性變數
linkedlist inorder(bitree bt)
//中序遍歷二叉樹bt,將葉子結點從左到右鏈成乙個單鏈表,表頭指標為head
//處理第乙個葉子結點
else //將葉子結點鏈入鍊錶
inorder(bt->rchild中序遍歷左子樹
pre->rchild=null設定鍊錶尾 }
return(head); } //inorder
時間複雜度為o(n),輔助變數使用head和pre,棧空間複雜度o(n)
6、4、void linklist_reverse(linklist &l)
//鍊錶的就地逆置;為簡化演算法,假設表長大於2
q->next=p;s->next=q;l->next=s;
}//linklist_reverse
廣西壯族自治區概況
一 概況 廣西壯族自治區簡稱桂,地處祖國南疆,位於東經104 26 112 04 北緯20 54 26 24 之間,北回歸線橫貫全區中部。廣西區位優越,南臨北部灣,面向東南亞,西南與越南毗鄰,東鄰粵 港 澳,北連華中,背靠大西南。是西南地區最便捷的出海通道,也是中國西部資源型經濟與東南開放型經濟的結...
2023年廣西壯族自治區資料總結加強
1 給定n個村莊之間的交通圖,若村莊i和j之間有道路,則將頂點i和j用邊連線,邊上的wij表示這條道路的長度,現在要從這n個村莊中選擇乙個村莊建一所醫院,問這所醫院應建在哪個村莊,才能使離醫院最遠的村莊到醫院的路程最短?試設計乙個解答上述問題的演算法,並應用該演算法解答如圖所示的例項。20分 2 題...
2023年廣西壯族自治區資料總結高階
1 假設以鄰接矩陣作為圖的儲存結構,編寫演算法判別在給定的有向圖中是否存在乙個簡單有向迴路,若存在,則以頂點序列的方式輸出該迴路 找到一條即可 注 圖中不存在頂點到自己的弧 有向圖判斷迴路要比無向圖複雜。利用深度優先遍歷,將頂點分成三類 未訪問 已訪問但其鄰接點未訪問完 已訪問且其鄰接點已訪問完。下...