程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> 數據結構 單鏈表-關於稀疏多項式的創建

數據結構 單鏈表-關於稀疏多項式的創建

編輯:編程解疑
關於稀疏多項式的創建

算法描述如圖,但是不知道這個q的作用,求大神詳細解答一下。圖片

最佳回答:


i=0時:
pre=P;//此時pre指針指向頭結點
q=P->next;//q被賦值成NULL
while(....)//不滿足
s->next=q;//將新插入的節點的next指針指向q,也就是被賦值成NULL了
pre->next=s;//讓頭結點的next指針指向了新插入的節點s
i=1時:
pre=P;//此時pre指針還是指向頭結點
q=P->next;//q指向了第一個節點(也就是之前的節點s)
while(假設滿足條件){
pre=q;//pre從指向頭結點變成了指向第一個節點
q=q->next;//q變成了NULL(因為第一個節點的next指針為NULL)
}
s->next=q;//將新插入的節點的next指針指向q,也就是被賦值成NULL了(如果此時的q不是最後一個節點,那麼s的next指針就指向他)
pre->next=s;//找到插入位置後將該節點對應的next指針指向了新插入的節點s

列舉了兩個循環:樓主應該發現
其實這個pre有兩個作用:
1.pre=P;//此時pre指針指向頭結點,就是每次循環都讓pre指向頭結點的地址(這樣才能從頭開始遍歷所有節點)
2.while循環裡,pre的作用在於找到應該在哪個節點後(假設是a)插入新節點
3.pre->next=s;pre的作用是將a的next指針指向新插入的節點(這樣才能將鏈表連起來)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved