數據結構總結(10.9)

隨着學習的深入線性表的基礎部分已然結束,不由得感嘆時光飛快,好像啥都沒學一樣,經歷了一個國慶是時候再對之前的知識做一個簡單的總結了。

1,單鏈表查找,插入  設置工作指針,計數器

p=first;j=0;

while(p&&j<i-1)

2,雙鏈表

template <class T>struct 
 DNode{   T  data;  DNode<T> *llink;//記錄鏈表前驅  
 DNode <T>*rlink;//記錄後記}; 

 

插入操作時,注意尾節點無後繼節點的情況 

處理原則:先處理每個方向的 遠端指針,再處理近端指針 

3.一元多項式的相加

用三個指針利用已有節點重新組合

while ( pa != NULL && pb != NULL ) {       a = pa->data; 
 b = pb->data;     
  if(a.exp==b.exp){ 
  //pa->exp == pb->exp  
   a.coef = a.coef + b.coef;//係數相加         
   p = pb;  pb = pb->next;   
           delete p;  //刪去原pb所指結點  
if ( a.coef == 0) {   
                p = pa;  pa = pa->next;  
delete p;            }                   //相加爲零, 該項不要    
        else {         
     //相加不爲零, 加入ch鏈     
              pa->data = a;  
 pc->next = pa;           
      pc = pa;  pa = pa->next;  
           }        }    
   else if(a.exp>b.exp) {   //pa->exp > pb->exp  
  pc->next = pb;  pc = pb;         
        pb = pb->next;  }      
 else{      //pa->exp < pb->exp  
 pc->next=pa;               
 pc = pa;  pa = pa->next;    
  }  
 }
if (pa ) pc->next=pa;
else pc->next=pb; 

4,鏈表合併

新鏈尾指針用來合併,原鏈指針並走

結果多項式的頭指針是a 的頭指針。

逆置單鏈表用頭插

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章