20172304 《程序设计与数据结构》第四周学习总结
20172304 《程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)》第四周學(xué)習(xí)總結(jié)
教材學(xué)習(xí)內(nèi)容總結(jié)
第六章主要介紹了列表,這個(gè)列表是一種概念上的籠統(tǒng)的定義。
列表包括鏈表和數(shù)組。
列表分為:有序列表,無序列表,索引列表。
| 無序列表 | 其元素件不具有內(nèi)在順序,元素按照他們在列表中的位置進(jìn)行排序 |
| 索引列表 | 其元素可以用數(shù)字索引來引用 |
有序列表和無序列表在插入式有區(qū)別,有序列表需要做到插入之后還是有序的。而無序列表不是這樣的。而索引列表雖然可以通過索引進(jìn)行插入,刪除操作,但是還是要保持連續(xù)。要做到索引之間是連續(xù)的。
java集合API中的列表
| add(E element) | 往列表的末端添加一個(gè)元素 |
| add(int index,E element) | 在指定索引出插入一個(gè)元素 |
| get(int index) | 返回指定索引處的元素 |
| remove(int index) | 刪除指定索引處的元素 |
| remove(E object) | 刪除指定對象的第一個(gè)出現(xiàn) |
| set(int index,E element) | 替代指定索引處的元素 |
| size() | 返回列表中的元素?cái)?shù)量 |
使用無序列表:學(xué)習(xí)計(jì)劃
其中的Course類定義了一些課程的信息例如系名,成績等等。然后其中的ProgramOfStudy則是對Course類進(jìn)行管理,做一些鏈表的基本操作。除此之外還添加了替換,查找等一些維護(hù)課程的必要操作。
索引列表應(yīng)用實(shí)例:Josephus問題
這個(gè)就是隔幾取一的問題。通過鏈表實(shí)現(xiàn)
列表ADT、
公共操作
| removeFirst | 從列表中刪除第一個(gè)元素 |
| removeLast | 從列表中刪除最后一個(gè)元素 |
| remove | 從列表中刪除某個(gè)元素 |
| first | 查看位于列表前端的元素 |
| last | 查看位于列表末端的元素 |
| contains | 確定列表是否含有某個(gè)元素 |
| isEmpty | 確定列表是否為空 |
| size | 確定列表中的元素?cái)?shù)量 |
有序列表
| add | 往列表中添加一個(gè)元素 |
無序列表
| addToFront | 把元素添加到列表的前端 |
| addToRear | 把元素添加到列表的末端 |
| addAfter | 把元素添加到列表中某個(gè)一直元素的后面 |
使用數(shù)組實(shí)現(xiàn)列表
使用鏈表實(shí)現(xiàn)列表
教材學(xué)習(xí)中的問題和解決過程
- 問題1:串行化的問題
- 問題1解決方案:書上提了一嘴有關(guān)串行化的概念,但是并沒有深入的講解,后來通過查閱資料得知,串行化可以將數(shù)據(jù)轉(zhuǎn)換為字節(jié)流,也就是計(jì)算機(jī)最基本的數(shù)據(jù)結(jié)構(gòu)——二進(jìn)制,這使得串行化后的數(shù)據(jù)可以儲(chǔ)存在任何儲(chǔ)存空間。但是串行化只能應(yīng)用在非靜態(tài)方法和變量。而且必須實(shí)現(xiàn)Serializable接口。
代碼調(diào)試中的問題和解決過程
由于這次進(jìn)行的內(nèi)容之前已經(jīng)進(jìn)行過很多次了(即鏈表和數(shù)組的),所以遇見的問題很少。問題1:在進(jìn)行測試時(shí)發(fā)現(xiàn)無法引用變量。還有toString方法沒有辦法正常調(diào)用
問題1解決方案:后來發(fā)現(xiàn)是沒有加運(yùn)行函數(shù)。還有在toString的函數(shù)里沒有將那個(gè)環(huán)形數(shù)組中開頭的索引值隨循環(huán)做自減運(yùn)算。
代碼托管
代碼截圖
錯(cuò)題總結(jié)
第三周&第四周錯(cuò)題
錯(cuò)題一:
錯(cuò)題一解答:
棧的pop操作返回的顯然是一個(gè)元素而不是一個(gè)節(jié)點(diǎn),這是當(dāng)時(shí)馬虎。
錯(cuò)題二:
錯(cuò)題二解答:后來在編碼過程中實(shí)踐了是正確的。
錯(cuò)題三:
錯(cuò)題三解答:后面已經(jīng)說了不是引用的類型,但是我還是錯(cuò)選了C,應(yīng)該選A對象的類型。
錯(cuò)題四:
錯(cuò)題四解答:集合中儲(chǔ)存的對象只包含對象本身,并不會(huì)有其具體實(shí)現(xiàn)的細(xì)節(jié)。
錯(cuò)題五:
錯(cuò)題五解析:這是很明顯得是,在單向列表中,其中常的打印方式必然是從頭部開始的,對應(yīng)實(shí)現(xiàn)的棧的出入棧操作也是在鏈表的頭部,也就是前部實(shí)現(xiàn)的。
第五周
錯(cuò)題一:
錯(cuò)題一解析:這道題我記得一開始我也想選A來著,知識(shí)不知道后來莫名其妙的選擇了B。
博客互評
- 博客中值得學(xué)習(xí)的或問題:
20172301 郭愷同學(xué)本次博客十分簡潔,對教材的內(nèi)容概括的十分精煉,總體篇幅較短。
20172328 李馨雨同學(xué)這次的博客中規(guī)中矩,沒有特別出彩的地方,但是結(jié)構(gòu)完整。
點(diǎn)評過的同學(xué)博客和代碼
- 上周博客互評情況
- 20172301
- 20172328
其他(感悟、思考等,可選)
本周主要學(xué)習(xí)了列表,在我的認(rèn)知中,列表就是包括鏈表和數(shù)組。經(jīng)過了這么長時(shí)間的打磨歷練,好像數(shù)組與鏈表的知識(shí)都已經(jīng)掌握了,聽老師說后面的束河圖就要利用鏈表和數(shù)組方面的知識(shí),不知道還要經(jīng)過多少次考驗(yàn)。學(xué)習(xí)進(jìn)度條
| 目標(biāo) | 5000行 | 30篇 | 400小時(shí) | |
| 第一周 | 30/30 | 1/1 | 10/10 | |
| 第二周 | 766/796 | 1/2 | 40/50 | |
| 第三周 | 817/1613 | 1/3 | 20/70 | |
| 第四周 | 1370/3983 | 2/5 | 30/100 |
參考資料
1.藍(lán)墨云班課
2.java軟件結(jié)構(gòu)與數(shù)據(jù)結(jié)構(gòu)
3.Java串行化問題
轉(zhuǎn)載于:https://www.cnblogs.com/15248252144dzx/p/9751888.html
總結(jié)
以上是生活随笔為你收集整理的20172304 《程序设计与数据结构》第四周学习总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 爬虫利器 Beautifu
- 下一篇: 关于使用fastjson统一序列化响应格