資料結構第2章學習小結

2022-06-27 23:36:16 字數 1576 閱讀 5473

你對本章內容的小結

完成作業或實踐時解決困難的經驗分享

目前學習過程中存在的困難,待解決或待改進的問題

上次部落格確定的目標達到了嗎?如果沒達到,請分析原因

接下來的目標

1.線性表小結:

(一)順序表

l.elem = new int [maxsize];

if ( ! l.elem) 退出,申請失敗;

l.length = 0;

退出,申請成功;

( 2 )    取值:   按下標取值即可

( 3 ) 查詢 :先判斷指定的位置序號i是否合理,合理則乙個for迴圈遍歷

( 4 )插入 :第一,判斷指定的位置序號 i 是否合理;

第二,判斷順序表的儲存空間是否已滿;

第三,將最後乙個至第i個元素依次向後移動乙個位置;

第四,插入;第五,表的長度+1

( 5 )刪除:第一,判斷指定的位置序號 i 是否合理;

第二,將第 i + 1 個至最後乙個元素依次向前移動乙個位置;

第三,表的長度-1

(二) 鏈式表

( 1 )初始化:新生成節點作為頭節點,頭指標l指向頭節點,頭節點的指標域為空

l = new lnode;

l -> next = null;

( 2 ) 取值 :順藤摸瓜地找

p = l -> next ;

找到則賦值e=p->data;

設定乙個計數器j,退出迴圈時如果指標p為空或者計數器 j 大於 i (i為要找的節點序號),說明搜尋失敗

( 4 )插入:第一,找到該節點的前乙個節點ai-1,並用指標p指向該節點;

第二,生成新節點;

第三,新節點資料域置為e;

第四,新節點指標域指向ai,

第五,節點p的指標域指向新節點

**: listinsert(單鏈表l , 第i個節點 , 插入的資料e(放在第i-1和第i個節點之間))

int  *p = l ;int j = 0; 

while(p && ( j < i - 1)  )

if( !p || j > i - 1) return 錯誤;

s = new lnode;//新建節點

s -> data = e;//資料域置為e

s ->next = p -> next; //新節點指標域指向ai

p -> next = s;

return 成功;

( 5 )刪除:一:找到ai-1; 二:找到ai+1, 三:ai-1節點的指標域指向ai+1 四:釋放ai空間

2.完成作業或實踐時解決困難的經驗分享

只參考了課本

4.目前學習過程中存在的困難,待解決或待改進的問題

string a;(寫在函式以外)

char b[1000];(寫在函式以外)

getline(cin,a);

cin.getline(b,1000);

輸入相同的資料,a和b的內容有何不同?

5.上次部落格確定的目標達到了嗎?如果沒達到,請分析原因

上次部落格沒有確定目標(該部落格為第一篇)

6.接下來的目標

a完天梯t1的題

資料結構小結2

資料結構 線性表 除第乙個元素外,其他每乙個元素有乙個且僅有乙個直接前驅。最後乙個元素外,其他每乙個元素有乙個且僅有乙個直接後繼 順序表 即把線性表的結點按邏輯次序依次存放在一組位址連續的儲存單元裡。時間效能 initlist l o 1 listlength l o 1 getelem l,i,e...

大話資料結構 第2章 演算法

3 演算法設計的要求 4 演算法效率的度量方法 5 函式的逐漸增長 6 演算法時間複雜度 7 常見的時間複雜度 8 最壞情況與平均情況 9 演算法空間複雜度 總結 演算法的定義 演算法是解決特定問題求解步驟的描述,在計算機中表現為指令的有限序列,並且每一條指令表示乙個或者多個操作。演算法的特性 輸入...

筆記 大話資料結構 第2章 演算法

寫乙個1 2 3 100求和程式int i,sum 0,n 100 執行了1次 for i 1 i n i 執行了n 1次 printf d sum 執行了1次 這樣可能不高效,高斯同學是這樣想的 int i,sum 0,n 100 執行了1次 sum 1 n n 2 執行了1次 printf d ...