;//第乙個結點的back指標賦值為null
previous = head;
//將第乙個結點設定為當前結點
scanf_s
("%d"
,&num)
;//獲取使用者第一次輸入的成績
while
(num !=0)
last-
>back = previous;
//與上乙個結點(當前結點)相連,新結點(last)back指標指向當前結點
previous-
>next = last;
previous = last;
//新結點變為當前結點,準備開闢新結點錄入新資料迴圈上述操作
scanf_s
("%d"
,&num)
;//繼續錄入成績 知道滿足num=0 退出迴圈否則一直開闢
} previous = previous-
>back;
//最後錄入的0為無效資料,需要釋放,先把當前指標指向倒數第二個結點(第乙個是0)
previous-
>next =
null
;//將倒數第二個結點的next指標設為null;
free
(last)
;//釋放最後乙個結點,倒數第二個結點next指標也不指向它了,倒數第二成為倒數第一
return head;
//返回第乙個結點的位址
}ptr show1
(ptr head)
return previous;
//head=head->next 為null previous指向最後乙個結點
}void
show2
(ptr head)
//同理,但要注意傳入引數head的位置不在頭結點反而在尾結點
}
資料結構 雙向鍊錶的實現
帶頭結點,不帶頭結點的類似 include include define elemtype int typedef struct dnodednode,dlinklist 雙向鍊錶的初始化 bool initdlinklist dlinklist l 雙鏈表 查詢指定idx位置的結點 dnode g...
資料結構 鍊錶 雙向鍊錶
注意typedef的定義結構,以及dinklist的資料型別 typedef struct dnode dnode,dinklist 注意插入第乙個結點時,prior指標的空指向問題 if l next null 若l後繼結點為空 則省略該步驟 l next prior p 基本 頭插法建立雙向鍊錶...
鍊錶實現學生管理系統
include include include define maxlen 100 struct data 定義鍊錶的元素個體 typedef data elemtype struct sqlist 建立鍊錶 sqlist createlist sqlist l r next null printf...