【正文】
。 struct Link *next。 }。 2022/7/10 56/60 鏈表的插入操作 ? 若原鏈表為非空,則按節(jié)點值(假設已按升序排序)的大小確定插入新節(jié)點的位置 ? 若在頭節(jié)點前插入新節(jié)點,則將新節(jié)點的指針域指向原鏈表的頭節(jié)點 , 且讓 head指向新節(jié)點 head 待插入節(jié)點 data next p (2) head = p data next data next data ∧ (1) pnext = head 2022/7/10 57/60 data next 鏈表的插入操作 ? 若在鏈表中間插入新節(jié)點,則將新節(jié)點的指針域指向下一節(jié)點且讓前一節(jié)點的指針域指向新節(jié)點 待插入節(jié)點 data next p (2) prnext = p data next data next data ∧ (1) pnext = prnext pr 2022/7/10 58/60 data next 鏈表的插入操作 ? 若在表尾插入新節(jié)點,則末節(jié)點指針域指向新節(jié)點 待插入節(jié)點 data next p (1) prnext = p pr data ∧ 原末節(jié)點 next ∧ 2022/7/10 59/60 鏈表的輸出 ? 遍歷鏈表的所有節(jié)點 head data next data next data ∧ p p p p ∧ 2022/7/10 60/60 ? Questions and answers 。 pnext = NULL。 2022/7/10 49/60 data next head data next data next data NULL 數(shù)據(jù)域:存儲數(shù)據(jù)元素信息 指針域:存儲直接后繼的節(jié)點信息 鏈表的定義 ? 鏈表 ( Linked Table) :線性表的鏈式存儲結構 – 為表示每個元素與后繼元素的邏輯關系,除存儲元素本身信息外,還要存儲其直接后繼信息 struct Link { int data。 }。 struct temp *pt。pt39。 }。 answer = yes。 enum weeks today。 }。 }。 return p。 }。 pday = 22。 int day。 = 5。 int month。stu[0]。 STUDENT *pt。 STUDENT stu1。 pt studentID = 1。 STUDENT *pt = amp。stu1。 ? 用運算符 sizeof獲得結構體大小 sizeof(變量或表達式 ) sizeof(類型 ) 12 printf(%d\n, sizeof(SAMPLE))。 /*Can this work?*/ struct stu1, stu2。/*It works*/ student stu1, stu2。stu2是該變量所占內存空間的首地址 2022/7/10 21/60 ? struct 類型用內存字節(jié)數(shù) = ? ? 是所有成員變量的內存總和嗎? printf(%d\n, sizeof(struct sample))。 pt = amp。 等價于 2022/7/10 27/60 指針 的定義和初始化 ? 如何訪問 結構體指針變量 所指向的結構體成員呢? STUDENT stu1。 ? 通過 pt和 指向運算符 訪問結構體成員 (*pt). studentID = 1。 pt birthday. year = 1999。 2022/7/10 29/60 指針 的定義和初始化 STUDENT stu[30]。 等價于 STUDENT *pt = amp。 ? 如何訪問 結構體數(shù)組指針 指向的結構體成員? stu[30] stu[0] stu[1] stu[2] stu[3] stu[4] stu[5] ...... st