數據結構第二章總結


你對本章內容的小結
完成作業或實踐時解決困難的經驗分享
這段時間,你參考了哪些值得向大家分享的資料?每一項推薦都請說明推薦理由及列出相關鏈接(或書目名稱,具體頁碼)
目前學習過程中存在的困難,待解決或待改進的問題
上次博客確定的目標達到了嗎?如果沒達到,請分析原因
接下來的目標

 

首先總結一下學習的知識吧。

(一)初始化
           順序表:為順序表分配一個大小確定的數組空間,空表時長度為0;
           鏈表:構造一個空的單鏈表L,用頭指針指向頭結點,頭結點的指針域置空(L = new LNode; L->next = NULL;)

(二)取值
           順序表:先判斷序號值是否合理,若合理,則e = L.elem[ i - 1 ] ;                   
           鏈表:用指針p指向首元結點,用j做計數器初值賦為1,從首元結點開始依次順着鏈域next向下訪問
                   p=L->next; j=1;
                   while(p&&j<i)
                   {  p=p->next; ++j; }
                   e = p->data;
             (三)查找(按值查找)
             順序表:從第一個元素起,依次與待查找數比較,時間復雜度為O(n)
                         for( int i=0; i<n; i++ )
                              if( L.elem[i]==e)  return i+1;
             鏈表:用指針p指向首元結點,從首元結點開始依次順着鏈域next向下訪問,時間復雜度為O(n)
                        p=L->next;
                        while( p && p->data != e )    p=p->next;
             (四)插入(在第i個位置插入新的元素e)
              順序表:將第n個至第i個位置依次向后移動一個位置,空出第i個位置,將元素e放入第i個位置,表長加1,時間復雜度為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個結點,再將值為e的新結點插入到結點a(i-1)和a(i)之間,時間復雜度為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是否合理,若合理,則將被刪除元素之后的元素前移,表長減1,時間復雜度為O(n)
                       for( j=i; j<=L.length-1; j++ )   L.elem[ j-1]=L.elem[ j ];
                       --L.length;
                 鏈表:先查找到第i-1個結點,臨時保存被刪除結點的地址以備釋放,改變刪除結點前驅結點的指針域,釋放刪除結點的指針域,時間復雜度為O(n)
                       while( p && j<i-1 )  { p=p->next; ++j; }
                       q=p-<next; p->next = q->next;

其次說一下我自己的感受吧。

其實說是真的,上個學期其他的知識我學的都挺好的,可是C++不會,學不懂。這學期也是,其他的知識我也都會,但是就是不會數據結構。這些知識點我也整理出來。可是我還是不會用,對此一竅不通。我原來就聽說過,這學期的數據結構一定要好好學,這是以后的基礎,一定會用得到的,而且也聽說C++學不好,以后的JAVA也學不好,我覺得我與這個計算機無緣了。曾經立下的雄心壯志也無法實現了吧。中間想了很多,我以為只要我夠努力就可以學得好,其實並不如我想象的那么簡單,越不會越不會,因為感覺自己好丟人,別人都是深奧的問題,可是我卻還停留在原地一動不動。想想自己好慘哦,哈哈哈。

我遇到的困難好多哦,看到我說的這些話都應該了解了吧,一開始別人說我學不明白是因為邏輯思維不好,可是我離散數學學的挺好的,就像我高中,別人說數學學得好物理就能好,可是我的物理並不是太好。我不知道該如何去做因為這本不是我真正的選擇,我真的不知道自己還能堅持多久,希望好久之后回頭看一下我的博客,能有所進步,有所改變吧。

完成作業時遇到不僅僅是困難了,已經算是災難了吧,我提交的很晚,因為我真的做了好久,最后還去網上尋找了一點答案,真的是想不明白,而且不會寫,就算自己明白怎么做,但是寫起代碼就不知道從何下手。實踐提交了一遍又一遍都沒過,真的很挫敗,這些從來不像對別人說,但是一旦寫在上面,肯定會有人看到的,我寫在這里也是希望某一天回頭看看能看到自己的成長。

那就這樣吧,沒有成功過的喜悅,只有遺憾的語氣,希望我可以堅持的久一點,更希望可以找到自己的方法去完成它。

替我加油吧!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM