資料結構 雙向鍊錶實現學生錄入功能

2021-09-05 01:20:23 字數 1211 閱讀 2206

;//第乙個結點的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...