2024-2025-1 20241329 《計算機基礎與程式設計》第七週學習總結

20241329刘沛妤發表於2024-11-09

作業資訊

作業歸屬課程:https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP
作業要求:https://www.cnblogs.com/rocedu/p/9577842.html#WEEK07
作業目標:陣列與連結串列、基於陣列和基於連結串列實現資料結構、無序表與有序表、樹、圖、子程式與引數
作業正文:https://www.cnblogs.com/incamellia/p/18536115

教材學習內容總結

《電腦科學概論(第七版)》第8章

  1. 陣列與連結串列:
    陣列是一種緊湊的連續儲存結構,允許透過索引隨機訪問元素,但其大小固定,無法動態調整。
    連結串列是一種透過指標連線的節點結構,適合動態調整資料量,但不支援隨機訪問。
    陣列和連結串列各有優缺點,適用於不同的場景。例如,陣列適合需要頻繁隨機訪問的場景,而連結串列適合需要頻繁插入和刪除操作的場景。
  2. 基於陣列和連結串列實現的資料結構:
    陣列可以用來實現棧、佇列、雜湊表等資料結構,這些結構利用陣列的隨機訪問特性來提高效率。
    連結串列則常用於實現連結串列本身、棧、佇列等,特別是雙向連結串列可以模擬陣列的功能,以支援高效的插入和刪除操作。
  3. 無序表與有序表:
    無序表通常使用連結串列實現,因為連結串列便於插入和刪除操作,而不需要維護元素的順序。
    有序表則通常使用連結串列或陣列實現,其中連結串列可以方便地保持元素的順序,而陣列則可以透過排序來實現有序性。
  4. 樹:
    樹是一種非線性的資料結構,由節點組成,每個節點包含資料和指向子節點的指標。樹包括二叉樹、平衡樹等多種型別。
    樹在電腦科學中應用廣泛,例如用於檔案系統、資料庫索引等場景。
  5. 圖:
    圖是一種表示節點及其相互關係的資料結構,節點之間透過邊相連。圖可以表示複雜的關係網路,如社交網路、交通網路等。
    圖的儲存方式主要有鄰接矩陣和鄰接表兩種,適用於不同的應用場景。
  6. 子程式與引數:
    子程式是可重用的程式碼塊,可以接受輸入引數並返回結果。引數傳遞機制包括值傳遞和引用傳遞兩種方式。
    子程式的設計和實現是程式設計中的重要概念,有助於提高程式碼的複用性和可維護性。

《C語言程式設計》第6章

  1. 巢狀迴圈
  • 定義:巢狀迴圈是指在一個迴圈內部包含另一個迴圈。這在處理多維陣列或需要多重條件檢查時非常有用。
  • 在C語言中,可以使用for、while或do-while迴圈進行巢狀。
  1. 條件控制的迴圈
  • for迴圈
    for迴圈是一種基本的迴圈結構,用於在給定條件為真時重複執行程式碼塊。
    語法:for (初始化表示式;條件表示式;更新表示式) { 程式碼塊 }
    其中,初始化表示式用於設定迴圈控制變數,條件表示式用於檢查迴圈是否應該繼續,更新表示式用於更新迴圈控制變數。
  • while迴圈
    while迴圈在條件為真時重複執行程式碼塊。
    語法:while (條件表示式) { 程式碼塊 }
    與for迴圈相比,while迴圈更靈活,因為它允許在迴圈開始之前不初始化迴圈控制變數。
  • do-while迴圈
    do-while迴圈至少執行一次程式碼塊,然後檢查條件是否為真,如果是,則繼續迴圈。
    語法:do { 程式碼塊 } while (條件表示式);
    這種迴圈結構確保程式碼塊至少執行一次,即使條件在第一次檢查時為假。
  1. 流程的轉移控制
  • break語句:break語句用於立即終止最內層的for、while或do-while迴圈。
    用途:當滿足某個特定條件時,提前退出迴圈。
  • continue語句:continue語句用於跳過當前迭代的剩餘程式碼,並繼續下一次迭代。
    用途:當不滿足某個條件時,跳過當前迴圈的剩餘部分,直接進入下一次迴圈的開始。
  • goto語句:goto語句用於跳轉到程式中的另一個標籤位置。
    用途:雖然不推薦使用,但在某些情況下,goto可以用於跳出多層迴圈。

教材學習中的問題和解決過程

問題:三種條件控制的迴圈各自的優點和區別。
答:
1. for迴圈

  • 優點:
    結構清晰:for迴圈將初始化、條件判斷和更新操作集中在一起,使得迴圈的起始條件、結束條件和變數更新方式一目瞭然。
    適用於已知迴圈次數:當確切知道迴圈次數時,for迴圈更合適。
  • 區別:
    for迴圈可以在括號內宣告和初始化迴圈變數,這個變數的作用域通常僅限於迴圈內。
    2. while迴圈
  • 優點:
    條件控制靈活:while迴圈在每次迭代前先檢查條件,如果條件為 true,則執行迴圈體,適用於迴圈次數不易預知的情況。
    簡潔性:適用於條件控制較為簡單的情況,程式碼簡潔。
  • 區別:
    while迴圈只強調條件判斷部分,條件寫在開頭;而for迴圈將初始化、條件判斷和更新操作集中在一起。
  1. do...while迴圈
  • 優點:
    至少執行一次:與while迴圈不同,do...while迴圈至少會執行一次迴圈體,然後再檢查條件表示式的值。
    適用於至少需要執行一次操作:適用於至少需要執行一次操作,然後根據條件判斷是否繼續執行的場景。
  • 區別:
  • do...while迴圈先執行迴圈體,然後判斷條件是否成立。若成立,則繼續執行迴圈體;若不成立,則結束迴圈。
  1. 總結
    for迴圈適合已知迴圈次數的情況,結構清晰,易於管理迴圈變數的生命週期。
    while迴圈適合迴圈次數不確定,僅由某個條件控制是否繼續迴圈的情況,條件判斷邏輯更為靈活。
    do...while迴圈確保迴圈體至少被執行一次,適用於需要至少執行一次操作的場景,然後根據條件判斷是否繼續執行。

基於AI的學習

image

相關文章