單連結串列尾插法為什麼需要尾指標呢,單連結串列尾插法為什麼需要一個尾指標呢?

時間 2021-05-07 20:01:44

1樓:在雨中的幻想

遍歷連結串列的用來判斷到達尾部。

比如:node p=a;

while(p)

2樓:匿名使用者

只針對你的這個問題來說,你的思路沒有問題,但是你的這個思路在**裡提現就必須要用到尾指標了,在迴圈建立單連結串列的時候,每個迴圈裡的內容是必須要一樣的吧?那麼你必然會將新生成的結點放在頭結點後邊,而迴圈裡如果都是這樣不就成了頭插法了嘛?即使你將第一個有效結點的生成抽出迴圈,那也就相當於從第一個節點開始了頭插法,一句話說,思路沒問題,實現起來需要多動動手,你問這個問題的時候應該還是新手,現在應該很厲害了,如果我的表達有錯誤也希望不吝賜教

3樓:匿名使用者

最佳答案瞎說,因為連結串列不是隨機存取的,尾指標減少時間成本

4樓:

如果不使用尾指標的話那麼每次插入新的結點需要先遍歷到連結串列的結尾位置,才能插入,時間複雜度就是o(n);若使用指標記錄尾部結點位置,那麼插入的時間複雜度就是o(1)

為什麼要引入尾插法建立單連結串列?

5樓:布達拉宮花園

尾插向連結串列尾部逐漸插入

結點像算描述r先指向指標s要逐插入結點指標r->next=s句說s插入指標第結點意思說s結點接入連結串列接著r=s句讓r指標指向剛剛插入結點節點進行進步插入算r->next=s逐逐往尾部插入結點直結點指標域空r->next=null跳迴圈!

資料結構單連結串列頭插法和尾插法是什麼意思?

6樓:兔子和小強

頭插法是新增

節點總是插在頭部,以帶頭結點連結串列為例,連結串列頭指標是head,新增節點p

那麼專p->next = head->next;

head->next = p;

如果是不帶頭結點的連結串列屬那麼對應是

p->next = head;

head = p;

而尾插法是將新增節點插在連結串列尾部,

for(t = head; t->next; t=t->next); //結束時t指向尾節點

p->next = null; //進行插入t->next = p;

7樓:

就是說當連結串列新增一個節點,是插入到每一個之前還是最後。

頭插法就是說插到第一個節點之前,

尾插法 就是插入到連結串列最後一個節點之後。

建立單連結串列的尾插法的程式設計思路是什麼

8樓:陳小庚晴波

建立連結串列時不僅使用頭指標,還要另外使用一個尾結點指標,每次插入的結點成為當前尾結點的後繼結點(也就是成為新表尾結點),並且尾結點指標也要後移,指向新插入的尾結點

其實鏈佇列就是這樣插入(入隊)的

連結串列尾插法為什麼要定義一個結構體變數

9樓:碧血玉葉花

1.用頭插法。因為資料追加和刪除比較多,追加的話,頭插法可以直接插,用尾插降低了時間效率,刪除用兩個一樣。

2./*結構體定義*/

struct client;

/*連結串列結點定義*/

struct node;

應該把結構體結點定義成連結串列的成員,這樣連結串列才對。如果像你那樣定義的話,完全不用定義結構體,連結串列就搞定了。因為你在連結串列裡面把結構的成員都又定義了。

3.1),定義結點:p1=(struct node*)malloc(sizeof(struct node)) ;表示定義一個node型的結點指標

使用,這個要看具體怎麼用了。比如說刪除searchp,priorp是searchp的前面一個結點,這樣寫

priorp->next=searchp->next;

delete searchp; 即可

插入newnode在searchp的後面,可以這樣:

newnode->next=searchp->next;

searchp->next=newnode;

2)廣義的二進位制就是檔案,你存成什麼檔案都行。.txt就行。

3)有儲存的

裡面有個fwrite就是寫入檔案,在判斷的過程中,能寫入檔案的就已經寫入了。 望採納。

大家看資料結構中 頭插法和尾插法,,為什麼尾插法要設定最後一個節點為空,而頭插法不用????????

10樓:匿名使用者

首先說頭插法是在連結串列的開始插入節點,所以他必有後繼 所以要設定其起後繼指標為插入前的頭結點。

而 尾插法是在連結串列的尾部插入節點所以修改原連結串列的尾部的後繼指標為新節點 而新節點以是尾部無後繼結點 所以尾插法的節點後繼為null

11樓:步行者

迴圈前:

只有一個頭結點l

迴圈第一次:

p->next=l->next=null; //頭插法,因此第一次迴圈的節點p作為連結串列的最後一個節點的p->next=null

l->next=p; //l的下一個節點為p迴圈第二次:

p->next=l->next; //注意此時l->next是第一次插入的節點p,l->next作為本次插入節點的下一個節點,即相當於在前面插入了一個節點

l->next=p;

注意:每次插入節點類似於這種情形:每次在頭節點 l 和連結串列的第一個節點(l->next) 之間插入一個新節點p

12樓:匿名使用者

尾插法每次插入的節點為連結串列的當前的最後一個節點,無後繼,故為null,

頭插法插入的節點是插入當前連結串列的頭部,即其後繼為當前連結串列的首元結點,故須指向該首元結點,所以不能為空

尾插法建立單連結串列問題

13樓:匿名使用者

尾插向連結串列尾部逐漸插入結點像算描述r先指向指標s要逐插入結點指標r->next=s句說s插入指標第結點意思說s結點接入連結串列接著r=s句讓r指標指向剛剛插入結點節點進行進步插入算r->next=s逐逐往尾部插入結點直結點指標域空r->next=null跳迴圈!

在單迴圈連結串列中,請問為什麼設定尾指標比設定頭指標好? 5

14樓:匿名使用者

因為尾指標的下一個就是頭指標,所以通過尾指標可以迅速的找到頭指標,但是因為是單連結串列,所以要通過頭指標找到尾指標就必須遍歷整個連結串列

15樓:匿名使用者

尾指標是指向終端結點的指標,用它來表示單迴圈連結串列可以使得查詢連結串列的開始結點和終端結點都很方便。

設一帶頭結點的單迴圈連結串列,其尾指標為rear,則開始結點和終端結點的位置分別是rear->next->next和rear,查詢時間都是o(1)。 若用頭指標來表示該連結串列,則查詢終端結點的時間為o(n)。