数据结构第二章总结
你對(duì)本章內(nèi)容的小結(jié)
完成作業(yè)或?qū)嵺`時(shí)解決困難的經(jīng)驗(yàn)分享
這段時(shí)間,你參考了哪些值得向大家分享的資料?每一項(xiàng)推薦都請(qǐng)說(shuō)明推薦理由及列出相關(guān)鏈接(或書(shū)目名稱(chēng),具體頁(yè)碼)
目前學(xué)習(xí)過(guò)程中存在的困難,待解決或待改進(jìn)的問(wèn)題
上次博客確定的目標(biāo)達(dá)到了嗎?如果沒(méi)達(dá)到,請(qǐng)分析原因
接下來(lái)的目標(biāo)
?
首先總結(jié)一下學(xué)習(xí)的知識(shí)吧。
(一)初始化
? ? ? ? ? ?順序表:為順序表分配一個(gè)大小確定的數(shù)組空間,空表時(shí)長(zhǎng)度為0;
? ? ? ? ? ?鏈表:構(gòu)造一個(gè)空的單鏈表L,用頭指針指向頭結(jié)點(diǎn),頭結(jié)點(diǎn)的指針域置空(L = new LNode; L->next = NULL;)
(二)取值
? ? ? ? ? ?順序表:先判斷序號(hào)值是否合理,若合理,則e = L.elem[ i - 1 ] ;? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ?鏈表:用指針p指向首元結(jié)點(diǎn),用j做計(jì)數(shù)器初值賦為1,從首元結(jié)點(diǎn)開(kāi)始依次順著鏈域next向下訪問(wèn)
? ? ? ? ? ? ? ? ? ?p=L->next; j=1;
? ? ? ? ? ? ? ? ? ?while(p&&j<i)
? ? ? ? ? ? ? ? ? ?{? p=p->next; ++j; }
? ? ? ? ? ? ? ? ? ?e = p->data;
? ? ? ? ? ? ?(三)查找(按值查找)
? ? ? ? ? ? ?順序表:從第一個(gè)元素起,依次與待查找數(shù)比較,時(shí)間復(fù)雜度為O(n)
? ? ? ? ? ? ? ? ? ? ? ? ?for( int i=0; i<n; i++ )
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if( L.elem[i]==e)? return i+1;
? ? ? ? ? ? ?鏈表:用指針p指向首元結(jié)點(diǎn),從首元結(jié)點(diǎn)開(kāi)始依次順著鏈域next向下訪問(wèn),時(shí)間復(fù)雜度為O(n)
? ? ? ? ? ? ? ? ? ? ? ??p=L->next;
? ? ? ? ? ? ? ? ? ? ? ? while( p && p->data != e )? ? p=p->next;
? ? ? ? ? ? ?(四)插入(在第i個(gè)位置插入新的元素e)
? ? ? ? ? ? ??順序表:將第n個(gè)至第i個(gè)位置依次向后移動(dòng)一個(gè)位置,空出第i個(gè)位置,將元素e放入第i個(gè)位置,表長(zhǎng)加1,時(shí)間復(fù)雜度為O(n)
? ? ? ? ? ? ? ? ? ? ? ? for( int j=L.length - 1; j>=i -1; j-- )? ? L.elem[ j+1]=L.elem[ j ];
? ? ? ? ? ? ? ? ? ? ? ? L.elem[ i -1 ]=e;?
? ? ? ? ? ? ? ? ? ? ? ? ++L.length;
? ? ? ? ? ? ? ?鏈表:先查找到第i-1個(gè)結(jié)點(diǎn),再將值為e的新結(jié)點(diǎn)插入到結(jié)點(diǎn)a(i-1)和a(i)之間,時(shí)間復(fù)雜度為O(n)
? ? ? ? ? ? ? ? ? ? ? ? p = L; j = 0;
? ? ? ? ? ? ? ? ? ? ? ?while( p && j<i-1 )? { p=p->next; ++j; }
? ? ? ? ? ? ? ? ? ? ? ?s = new LNode; s->data=e;?
? ? ? ? ? ? ? ? ? ? ? ?s->next = p->next; p->next = s;
? ? ? ? ? ? ? ?(五)刪除
? ? ? ? ? ? ? ? 順序表:先判斷位置i是否合理,若合理,則將被刪除元素之后的元素前移,表長(zhǎng)減1,時(shí)間復(fù)雜度為O(n)
? ? ? ? ? ? ? ? ? ? ? ?for( j=i; j<=L.length-1; j++ )? ?L.elem[ j-1]=L.elem[ j ];
? ? ? ? ? ? ? ? ? ? ? ?--L.length;
? ? ? ? ? ? ? ???鏈表:先查找到第i-1個(gè)結(jié)點(diǎn),臨時(shí)保存被刪除結(jié)點(diǎn)的地址以備釋放,改變刪除結(jié)點(diǎn)前驅(qū)結(jié)點(diǎn)的指針域,釋放刪除結(jié)點(diǎn)的指針域,時(shí)間復(fù)雜度為O(n)
? ? ? ? ? ? ? ? ? ? ? ?while( p && j<i-1 )? { p=p->next; ++j; }
? ? ? ? ? ? ? ? ? ? ? ?q=p-<next; p->next = q->next;
其次說(shuō)一下我自己的感受吧。
其實(shí)說(shuō)是真的,上個(gè)學(xué)期其他的知識(shí)我學(xué)的都挺好的,可是C++不會(huì),學(xué)不懂。這學(xué)期也是,其他的知識(shí)我也都會(huì),但是就是不會(huì)數(shù)據(jù)結(jié)構(gòu)。這些知識(shí)點(diǎn)我也整理出來(lái)。可是我還是不會(huì)用,對(duì)此一竅不通。我原來(lái)就聽(tīng)說(shuō)過(guò),這學(xué)期的數(shù)據(jù)結(jié)構(gòu)一定要好好學(xué),這是以后的基礎(chǔ),一定會(huì)用得到的,而且也聽(tīng)說(shuō)C++學(xué)不好,以后的JAVA也學(xué)不好,我覺(jué)得我與這個(gè)計(jì)算機(jī)無(wú)緣了。曾經(jīng)立下的雄心壯志也無(wú)法實(shí)現(xiàn)了吧。中間想了很多,我以為只要我夠努力就可以學(xué)得好,其實(shí)并不如我想象的那么簡(jiǎn)單,越不會(huì)越不會(huì),因?yàn)楦杏X(jué)自己好丟人,別人都是深?yuàn)W的問(wèn)題,可是我卻還停留在原地一動(dòng)不動(dòng)。想想自己好慘哦,哈哈哈。
我遇到的困難好多哦,看到我說(shuō)的這些話都應(yīng)該了解了吧,一開(kāi)始別人說(shuō)我學(xué)不明白是因?yàn)檫壿嬎季S不好,可是我離散數(shù)學(xué)學(xué)的挺好的,就像我高中,別人說(shuō)數(shù)學(xué)學(xué)得好物理就能好,可是我的物理并不是太好。我不知道該如何去做因?yàn)檫@本不是我真正的選擇,我真的不知道自己還能堅(jiān)持多久,希望好久之后回頭看一下我的博客,能有所進(jìn)步,有所改變吧。
完成作業(yè)時(shí)遇到不僅僅是困難了,已經(jīng)算是災(zāi)難了吧,我提交的很晚,因?yàn)槲艺娴淖隽撕镁?#xff0c;最后還去網(wǎng)上尋找了一點(diǎn)答案,真的是想不明白,而且不會(huì)寫(xiě),就算自己明白怎么做,但是寫(xiě)起代碼就不知道從何下手。實(shí)踐提交了一遍又一遍都沒(méi)過(guò),真的很挫敗,這些從來(lái)不像對(duì)別人說(shuō),但是一旦寫(xiě)在上面,肯定會(huì)有人看到的,我寫(xiě)在這里也是希望某一天回頭看看能看到自己的成長(zhǎng)。
那就這樣吧,沒(méi)有成功過(guò)的喜悅,只有遺憾的語(yǔ)氣,希望我可以堅(jiān)持的久一點(diǎn),更希望可以找到自己的方法去完成它。
替我加油吧!
轉(zhuǎn)載于:https://www.cnblogs.com/XJWQ/p/10549398.html
總結(jié)
- 上一篇: java创建对象 的初始化顺序
- 下一篇: 基于思科模拟器的AAA配置与验证