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