湖南大學資料結構第一次作業

2021-03-17 02:09:54 字數 1673 閱讀 8740

第三章作業:

3.8(a)c1n: o(n):n0=1且c=c1 ω(n):n0=0且c=c1

(b)c2n3+c3: o(n3):n0=1且c=c2+c3 ω(n3):n0=1且c=c2

(c)c4nlogn+c5n: o(nlogn) n0>c5 c=c4+1 ω(nlogn) n0>c5 c=c4

(d)c62n+c7n6 o(2n) n0 > c7100且 c = c6 + 1.

(2n) n0 > c7100 and c = c6. (100用於確保2n>n6)

3.9 (a) f(n) = θ(g(n)) 因為log n2 = 2 log n.

(b) f(n)在 (g(n))中因為nc 增長速度快於log nc .

(c) f(n)在 (g(n))中. 兩邊同時除以logn,發現logn增長速度快於1

(d) f(n) 在(g(n))中.將f(n)and g(n)都作為指數,2f(n)增長速度快於2g(n)

(e) f(n) 在(g(n))中.兩邊同時除以logn,左邊增長速度快於右邊

(f) f(n) = θ(g(n))兩邊都是常數

(g) f(n) 在 (g(n))中 2n增長速度快於10n2

(h) f(n) 在o(g(n))中.3n=1.5n*2n,兩邊同除2n,1.5n增長速度大於1

第四章 4.18

void reverse(queue& q, stack& s)

while (!s.isempty())

}4.20 (a) bool balance(string str)

if (s.isempty()) return true;

else return false;

}(3)試寫一演算法,實現單鏈表的就地逆置,即利用原表的儲存空間將線性表(a0, a1, …, an-1)逆置為(an-1, an-2, …, a0)

voidinverse(linklist&l)

}(4) 已知有乙個單向迴圈鍊錶,其每個結點中含3個域:prev、data和next。其中data為資料域,next為指向後繼結點的指標域,prev也為指標域,但它的值為空(null), 試編寫演算法將此單向迴圈鍊錶改為雙向迴圈鍊錶,即使prev成為指向前驅結點的指標域。

node*list(node*head)

returnq;

}(5) 假設以帶頭結點的迴圈鍊錶表示佇列,並且只設乙個指標指向隊尾元素結點(注意不設頭指標),試編寫相應的佇列初始化、入佇列和出佇列的演算法。

statusinitclqueue(clqueue&rear)

statusenclqueue(clqueue&rear,elemtypex)

else

returntrue;

}statusdeclqueue(clqueue&rear,elemtype&x)

(6) 假設將迴圈佇列定義為: 以域變數front和length分別指示迴圈佇列中隊首元素的位置和內含元素的個數, 試寫出佇列初始化、入佇列和出佇列的演算法。

sequeue queueinit(sequeue cq) ∥佇列初始化

sequeue queuein(sequeue cq,elemtype x) ∥元素x入隊

return (cq);

} elemtype queueout(sequeue cq) ∥出隊演算法,且返回出隊元素}

資料結構第一次作業

程式一 1 問題描述 約瑟夫斯 josephus 問題的一種描述是 編號為1,2,n的n個人按順時針方向圍坐一圈,每人持有乙個密碼 正整數 一開始任選乙個正整數作為報數上限值m,從第乙個人開始按順時針方向自1開始報數,報到m時停止報數。報m的人出列,將他的密碼作為新的m值,從他在順時針方向下乙個人開...

湖南大學資料結構考試重點

資料結構 複習提綱 一 基礎知識 1 二 應用 5 三 演算法 5 四 題型及樣題 6 第1章緒論 1 什麼是資料結構,分類 2 抽象資料型別的形式定義 3 邏輯結構 物理結構 儲存結構 4 時間複雜度 第2章線性表 5 線性表的定義和術語 6 線性表的儲存結構 順序表鏈式表 線性鍊錶 單鏈表 迴圈...

湖南大學資料結構期末課程試卷

湖南大學課程考試試卷 課程名稱 數位電路與邏輯設計 試卷編號 考試時間 120分鐘 一 填空題 每空2分,共10分 1 39.75 1016 2 asic可分為和可程式設計asic programmable asic 3 數字系統分為以下六個層次 系統級邏輯單元級 邏輯門級矽片級。二 單選題 在本題...