DS實驗題 地鼠安家

2022-02-06 17:32:39 字數 1464 閱讀 7881

fd是乙個公認的美麗校園。一天,fd來了一群地鼠,編號為1到n,他們希望在這裡定居。現在先由第一只地鼠往下打乙個單位的距離,並且在那裡安家。對於每乙個已經安家的地鼠,如果他左下或右下沒有鄰居,那還沒安家的地鼠就可以在他的左下或者右下安家。地鼠們已經建完所有的窩了,他們評價這些窩合格的標準是它們能不能形成一棵二叉搜尋樹(二叉搜尋樹的定義見課本)。現在需要你幫助他們評估一下他們的窩挖的是否合格。

第1行乙個整數n,表示地鼠總共n只。接下來一共n行,每一行三個數:l,o,r,其中l表示編號為o的地鼠的左鄰居的編號,r表示的是編號為o的右鄰居的編號,如果沒有左鄰居或右鄰居,則l或r為-1。1<=n<=10000。保證給出的是一顆二叉樹。

輸出一行,如果如果他們的窩合格,則輸出安居在最深的窩的地鼠離地面的距離,如果不合格,則輸出-1。

5-1 1 -1

1 2 3

-1 3 -1

2 4 5

-1 5 -1

//

// main.cpp

// 地鼠打洞

//// created by wasdns on 16/10/26.

//#include #include #include #include #include using namespace std;

#define fmax -10000;

struct tree s[10005];

/*tree* ininode()

return p;

} */

tree* creattree(int n) }}

else if (lturn == -1 && rturn != -1) }}

else

if (s[j].num == rturn) }}

}}tree *header;

for (i = 0; i < n; i++)

}return header;

}int t = fmax;

bool treejudge(tree *p)

if (p -> num < t)

else

bool j2 = treejudge(p -> r);

if (!j2)

}return jr;

}int treeheight(tree* header)

else

}return 0;

}int main()

tree *header;

header = creattree(n);

if (!treejudge(header))

else

return 0;

}

2016/10/30

DS實驗題 擊鼓傳花

ds 擊鼓傳花 created by wasdns on 16 11 9.include include include include include using namespace std int killman 1000 killer and alive man int main if kil...

DS實驗題 融合軟泥怪 1

很容易想到第一種做法,用huffman演算法,從森林中找出兩個值最小的節點,合併再加入森林,在這個過程中不斷記錄。但是每一次需要sort一遍,將最小的兩個值節點置於頭兩個節點,最壞情況下複雜度是o n 3 的量級,結果是tle。huffman main.cpp huffman tree2 creat...

Java 小實驗題

程式設計建立乙個 box類 長方體 在 box類中定義三個變數,分別表示長方體的長 length 寬 width 和高 heigth 再定義乙個方法 void setbox int l,int w,int h 對這三個變數進行初始化,然後定義乙個方法 int volume 來計算長方體的體積。最後,...