日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

广工anyview数据结构第七章(2021.12)

發布時間:2023/12/18 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 广工anyview数据结构第七章(2021.12) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

廣工anyview數據結構習題第七章,

在學習過程中部分題目參考了Giyn 、戮漠、雁過留痕等大佬的代碼,在此感謝。

題目解法不是最優解,但希望能給大家有所啟發。同時也發了文檔資源,需要可自取。

目錄

DC07PE15

DC07PE17

DC07PE22

DC07PE24

DC07PE26

DC07PE63


DC07PE15

試編寫算法,對一棵以孩子兄弟鏈表表示的樹統計葉子的個數。孩子兄弟鏈表類型定義∶

typedef struct CSTNode {
TElemType data;
struct CSTNode *firstChild,*nextSibling;

} CSTNode,*CSTree;
要求實現下列函數∶
int Leave(CSTree T); /* 統計樹T的葉子數 */

#include "allinclude.h" //DO NOT edit this line int Leave(CSTree T) { // Add your code hereif(T==NULL)return 0; if(T->firstChild==NULL)return (1+Leave(T->nextSibling)); else return ( Leave(T->nextSibling) + Leave(T->firstChild) );}

DC07PE17

試編寫算法,求一棵以孩子兄弟鏈表表示的樹的度。孩子兄弟鏈表類型定義∶

typedef struct CSTNode {
TElemType data;
struct CSTNode *firstChild, *nextSibling;

} CSTNode,*CSTree;
要求實現下列函數∶
int Degree(CSTree T); /* 求樹T的度*/

#include "allinclude.h" //DO NOT edit this line int Degree(CSTree T) { // Add your code here if(T==NULL)return 0; void Degree1(CSTree T, int &maxnum); int maxnum=0;Degree1(T,maxnum); return maxnum; }void Degree1(CSTree T, int &maxnum) { if(T==NULL)return ; if(T->firstChild!=NULL) {int n=1;CSTree temp=T;temp=temp->firstChild;while(temp->nextSibling!=NULL){temp=temp->nextSibling;n++;}maxnum= maxnum>n ? maxnum : n; } Degree1(T->firstChild,maxnum); Degree1(T->nextSibling,maxnum); }

DC07PE22

試編寫算法,對以雙親表示法存儲的樹計算深度。樹的雙親表示法的類型定義如下∶

typedef struct {
TElemType data;
int? parent;? //雙親位置

} PTNode;? //結點類型

typedef struct {
PTNode nodes[MAX_TREE_SIZE]; // 結點存儲空間

int n,r; // 結點數和根的位置

}PTree;
要求實現以下函數∶
int PTreeDepth(PTree T); /*求樹T的深度 */

#include "allinclude.h" //DO NOT edit this line int PTreeDepth(PTree T) { // Add your code here if(T.n==0)return 0; int max=0,i=T.n,num; PTNode temp; while(i>0) {num=0;temp=T.nodes[--i];while(temp.parent!=-1){num++;temp=T.nodes[temp.parent];}if(num>max)max=num; } return max+1; //加上根結點}

DC07PE24

試編寫算法,對以雙親孩子表示法存儲的樹計算深度。
孩子鏈表類型定義∶
typedef struct ChildNode {
int childIndex; ????????// 孩子結點
struct ChildNode *nextChild;

}ChildNode; ????????//孩子節點類型
typedef struct {
TElemType data;

int parent;? ? ? ?????????// 雙親位置
struct ChildNode *firstChild; // 孩子鏈表頭指針
}PCTreeNode; ????????// 結點類型

typedef struct {
PCTreeNode *nodes;? //結點存儲空間
int n,r;? ? //結點數和根的位置

} PCTree;

要求實現下列函數∶
int PCTreeDepth(PCTree T);? /* 求樹T的深度*/

#include "allinclude.h" //DO NOT edit this line int PCTreeDepth(PCTree T) { // Add your code here if(T.n==0)return 0; int max=0,i=T.n,num; PCTreeNode temp; while(i>0) {num=0;temp=T.nodes[--i];while(temp.parent!=-1){num++;temp=T.nodes[temp.parent];}if(num>max)max=num; } return max+1; //加上根結點}

DC07PE26

試編寫算法,對以孩子-兄弟鏈表表示的樹計算深度。孩子兄弟鏈表類型定義∶

typedef struct CSTNode {
TElemType data;
struct CSTNode *firstChild,*nextSibling;

} CSTNode,*CSTree;
要求實現下列函數∶

int TreeDepth(CSTree T);? /*求樹T的深度*/

#include "allinclude.h" //DO NOT edit this line int TreeDepth(CSTree T) { // Add your code here if(T==NULL)return 0; int dep1,dep2,dep; dep1=TreeDepth(T->firstChild); dep2=TreeDepth(T->nextSibling); dep= (dep1+1)>dep2 ? (dep1+1) : dep2;return dep; }

DC07PE63

試編寫非遞歸算法,實現并查集帶路徑壓縮的查找操作。并查集的類型定義如下∶

typedef struct {

int *parent;

int n;

}MFSet;

實現下列函數∶
int find(MFSet S,int i);
/* 并查集帶路徑壓縮的查找的非遞歸實現 */

#include "allinclude.h" //DO NOT edit this line int find(MFSet S, int i) { // Add your code here if(i<0 || i>=S.n)return -1; if(S.parent[i]<0)return i;int temp=i,temp1=i; while(S.parent[temp]>=0){temp=S.parent[temp];}while(temp1!=temp) {temp1=S.parent[i]; S.parent[i]=temp; i=temp1; } return temp; }

總結

以上是生活随笔為你收集整理的广工anyview数据结构第七章(2021.12)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。