對計算機考研數(shù)據(jù)結(jié)構(gòu)考點還不熟悉的同學們趕緊看過來吧!小編以“尾插法建表”為例,為大家整理了有關(guān)2024計算機考研數(shù)據(jù)結(jié)構(gòu)考點的內(nèi)容,具體如下:
2024計算機考研數(shù)據(jù)結(jié)構(gòu)高頻考點:尾插法建表
  尾插法建表:該方法是將新結(jié)點插到當時鏈表的表尾上,為此,必須增加一個尾指針r,
  使其始終指向當時鏈表的尾節(jié)點。
  void CreateListR(LinkList*&L,int a[],int n)
  {
  LinkList*s,*r;//s是指向新結(jié)點的指針,r是指向當時鏈表尾節(jié)點的指針
  L=(LinkList*)malloc(sizeof(LinkList));//創(chuàng)建頭結(jié)點
  r=L;//*r始終指向尾節(jié)點,開始時指向頭結(jié)點
  for(int i=0;i
  {
  s=(LinkList*)malloc(sizeof(LinkList));
  s->data=a[i];
  r->next=s;//將*s插入*r之后
  r=s;
  }
  r->next=NULL;//尾節(jié)點next域置為NULL
  }
  尾插法與頭插法最大的不同就在于,頭插法只需要一個結(jié)點指針,而尾插法需要兩個結(jié)點指針(不包含指向頭結(jié)點的指針),多的那一個指針就是指向當時鏈表尾節(jié)點的尾指針,先記住這個不同點,然后我們再來看看代碼部分。
  和頭插法相同的部分就不再重復了,r=L;這一句如果大家真正掌握了上述的話,我想寫出來是不費吹灰之力的,沒有吸收結(jié)點時,尾指針肯定是要指向頭結(jié)點的,
  r->next=s的意思不就是將s所指向的結(jié)點作為r所指向的結(jié)點的后繼么?這是什么?這不就是尾插法初衷么?尾插法不就是希望新加入的結(jié)點時作為當時鏈表的尾節(jié)點么?
  r=s;可不要小看了這一句噢,看似簡單,卻有深意滴,我們可以這樣想,尾插法就是新吸收的結(jié)點作為當時鏈表的尾節(jié)點,而尾指針就是指向當時鏈表的尾節(jié)點的,那上一步中已經(jīng)將s所指向的結(jié)點作為了當時鏈表的尾節(jié)點,那么現(xiàn)在是不是就應(yīng)該讓尾指針指向它呢?那是必須的。
  本文內(nèi)容整理于網(wǎng)絡(luò)僅供參考。
  以上就是【2024計算機考研數(shù)據(jù)結(jié)構(gòu)高頻考點:尾插法建表】的全部內(nèi)容,如果你想要學習更多考研方面的知識,歡迎大家前往高頓考研考試頻道!
  小編為2024考研的小伙伴們準備了豐富的學習資料,點擊下方藍色圖片即可領(lǐng)取哦~
考研備考資料