20172304 《程序設計與數據結構》 第二週學習總結

20172304 《程序設計與數據結構》第二週學習總結

教材學習內容總結

本週主要學習了第三章和第四章的內容
第三章 集合概述——棧
3.1集合
集合是一種彙集組織了其餘對象的對象。
集合能夠分爲兩大類線性集合和非線性集合
線性集合:其元素按直線方式組織的集合。
非線性集合:其元素按某種非直線方式組織的集合。例如按層次結構或按網狀結構。
3.1.1抽象數據類型
集合十一找給你隱藏了實現細節的抽象
數據類型:一組值及做用於這些數值上的各類操做。
抽象數據:類型(Absttract Data Type, ADT)是一種在程序設計語言中還沒有定義氣質和操做的數據類型。
數據結構:一種用於實現集合的編程結構集。
3.1.2
java集合API:java程序設計緣由一個支持軟件開發的龐大類庫中的一部分。
3.2 棧集合
棧是一種線性集合,其元素的添加和刪除都是在同一端進行的,咱們稱棧是後進先出。php

操做 描述
push 添加一個元素到棧的頂部
pop 從棧的定不溢出一個元素
peek 查看棧頂部的元素
isempty 肯定棧是否爲空
size 肯定棧的元素數目

3.3 主要的面向對象的概念
爲了實現良好的重用性,咱們就必須考慮到類型兼容性和類型檢查
3.3.1繼承與多態性
多態引用是一個引用變量,他能夠在不一樣的地點引用不一樣類型的對象。繼承可用於建立一個類層次,其中,一個引用變可用於指向與之相關的任意對象。
3.3.2 泛型
java語言容許用戶基於泛型來定義類。咱們能夠定義一個類,一邊他能儲存、操做和管理其餘對象。
3.4 使用棧計算後綴表達式
中綴表達式是正常運算式,而中綴表達式則是根據運算順序將中綴表達式的運算符置後。後綴表達式不中綴表達式利於計算,因此程序設計語言編譯器和運算式環境在其內部計算中每每使用後綴表達式。使用棧計算後綴表達式的算法秒數以下:從左到右掃描表達式,一次表示出每一個符號(操做符huo9操做數)。如梭是操做數,則把它壓入棧中。若是是操做非,則從棧中彈出兩個元素,並把該操做符因公在這兩個元素之上,當到 大表達式的末尾是,棧中所剩餘的元素就是該表達式的計算結果。
3.4.1 javadoc
Javadoc是一種註釋風格以/**開始,以*/結束。
3.5 異常
異常是一種對象,它定義了一種非正常或錯誤的狀況。異常由程序或運行時環境拋出,能夠按預期的被捕獲或被正確處理。
3.6 棧ADT
爲棧集合定義了一個Java接口
3.7 用數組實現棧
3.7.1 管理容量
數組中的單元數量 稱爲該數組的容量。
應當在數組容量已滿時,從新定義一個數組擴大容量,並將原數組的數據複製到新數組中。
3.8ArrayStack類
介紹了用數組實現棧,以及各類棧的方法的實現。
第四章 鏈式結構——棧
4.1 連接做爲引用
鏈式結構是一種數據結構,它使用對象引用變量來建立對象之間的連接。指向對象的變量叫作指針。在鏈表中儲存的對象一般泛稱爲該鏈表的節點。
4.2 管理鏈表
4.2.1 訪問元素
須要新建立一個引用變量來替代頭指針,由於 若是用頭指針直接引用,會丟失數據。
4.2.2插入節點
使前一個節點的next指向新的節點,使新的節點的引用指向下一個節點。
4.2.3 刪除節點
使上一個節點的引用指向下一個節點的引用
4.5使用棧來穿越迷宮
模擬遞歸html

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

  • 問題1:引入異常的意義
  • 問題1解決方案:教材中寫道,有時出現錯誤時能夠選擇拋出異常,但我並不知道這麼作的意義何在。後來在網上查閱了一些資料。java引入異常機制,是爲了提升系統的健壯性,由於異常會被拋出,可是還能夠被捕獲處理。這樣能夠必定程度上提升系統的健壯性,避免發生未知名錯誤。並且程序員也能夠預先設置try-catch語句,來捕獲一些醫療之中的異常。

代碼調試中的問題和解決過程

  • 問題1:在進行做業3.9的時候,出現了問題,入棧時只要更改元素,顯示框內的全部元素都會改變,還有沒法出棧。
  • 問題1解決方案:結果發現是在getText後面應該在加一個.toString。以及少了一行代碼:top--;

代碼託管

上週考試錯題總結

  • 錯題一

  • 緣由:由於看錯了,沒什麼好解釋的,棧原本就能夠儲存數據的順序。
  • 錯題二

  • 緣由:誤將2ⁿ當作2n,這是一個意外。java

    點評模板:

  • 博客中值得學習的或問題:
    -20172301 郭愷
    郭愷同窗的博客嚴謹緊湊,短小精悍,雖然沒有長長的篇幅,可是卻面面俱到。並且最滿能難得的是,他並無在教材歸納上過度囉嗦,而是一筆帶過,反而在最能體現個性的教材問題解答和代碼調試中下了大工夫,但願郭愷同窗能繼續保持這個優良傳統。
    • 20172328 李馨雨
      李馨雨同窗仍是一如既往的認真教材知識總結配上圖片,不只更加一目瞭然,並且還增長了閱讀的趣味。多是我對知識理解的還不透徹,並不能頗有針對性的提出問題,不想李馨雨同窗,能將排序法分析的鞭辟入裏,頭頭是道,佩服佩服,從此還要想 李馨雨同窗學習,多多學習她的代碼博客。

點評過的同窗博客和代碼

其餘(感悟、思考等,可選)

本週又是充實的一週,在新的學習生活中有從新溫習了一些舊的知識。溫故而知新能夠爲師矣。這是一條必將伴隨我終生的箴言(既然已經選擇了程序員這條苦B的道路)。git

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 30/30 1/1 10/10
第二週 766/796 1/2 40/50

參考資料

1.java爲何要引入異常出來機制
2.藍墨雲班課
3.java軟件結構與數據結構程序員

相關文章
相關標籤/搜索