freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

chap11_指針進(jìn)階-資料下載頁

2025-08-01 17:25本頁面
  

【正文】 d_node * Create_Stu_Doc()。 /* 新建鏈表 */ struct stud_node * InsertDoc(struct stud_node * head, struct stud_node *stud)。 /* 插入 */ struct stud_node * DeleteDoc(struct stud_node * head, int num)。 /* 刪除 */ void Print_Stu_Doc(struct stud_node * head)。 /* 遍歷 */ 鏈表的概念 ? 一種 動態(tài)存儲 分布的數(shù)據(jù)結(jié)構(gòu) ? 若干個同一結(jié)構(gòu)類型的“結(jié)點”依次串接而成 ? 單向鏈表 、雙向鏈表 頭指針 結(jié)點 尾結(jié)點 head 9903 Qian 80 NULL 9901 Wang 80 9902 Li 90 鏈表的概念-結(jié)點定義 struct stud_node{ int num。 char name[20]。 int score。 struct stud_node *next。 }。 結(jié)構(gòu)的遞歸定義 head 9905 Qian 80 NULL 9901 Wang 80 9902 Li 90 鏈表的概念-與數(shù)組比較 ? 數(shù)組 ?事先定義固定長度的數(shù)組 ?在數(shù)組元素個數(shù)不確定時,可能會發(fā)生浪費(fèi)內(nèi)存空間的情況 ? 鏈表 ?動態(tài)存儲分配的數(shù)據(jù)結(jié)構(gòu) ?根據(jù)需要動態(tài)開辟內(nèi)存空間,比較方便地插入新元素(結(jié)點) ?使用鏈表可以 節(jié)省內(nèi)存 ,提高操作效率 動態(tài)存儲分配函數(shù) malloc() void *malloc(unsigned size) 在內(nèi)存的動態(tài)存儲區(qū)中分配一連續(xù)空間,其長度為size ?若申請成功,則返回一個指向所分配內(nèi)存空間的起始地址的指針 ?若申請不成功,則返回 NULL( 值為 0) ?返回值類型: (void *) ? 通用指針的一個重要用途 ? 將 malloc的返回值轉(zhuǎn)換到特定指針類型,賦給一個指針 malloc()示例 int *ip = (int *) malloc( sizeof(int) ) struct student * p。 p = (struct student *) malloc(sizeof(struct student))。 ? 調(diào)用 malloc時,用 sizeof 計算存儲塊大小 ? 雖然存儲塊是動態(tài)分配的,但它的大小在分配后也是確定的,不要越界使用。 p 動態(tài)存儲釋放函數(shù) free 當(dāng)某個動態(tài)分配的存儲塊不再用時,要及時將它釋放 void free(void *ptr) 釋放由動態(tài)存儲分配函數(shù)申請到的整塊內(nèi)存空間, ptr為指向要釋放空間的首地址。 free(ip)。 free(p)。 p 單向鏈表的常用操作 1. 鏈表的建立 2. 鏈表的遍歷 3. 插入結(jié)點 4. 刪除結(jié)點 struct stud_node *head, *tail, *p。 head = tail = NULL。 size = sizeof(struct stud_node)。 p = (struct stud_node *) malloc(size)。 head tail tail p num name score next p 程序段 head = tail = NULL。 scanf(%d%s%d, amp。num,name, amp。score)。 while(num != 0){ p = (struct stud_node *) malloc(size)。 pnum = num。 strcpy(pname, name)。 pscore = score。 pnext = NULL。 if(head == NULL) head = p。 else tailnext = p。 tail = p。 scanf(%d%s%d, amp。num, name, amp。score)。 } 2. 鏈表的遍歷 ptrnum ptrscore ptr ptr for(ptr = head。 ptr != NULL。 ptr = ptr next) printf(%ld, %d, ptr num, ptr score)。 ptr=ptrnext head 9905 Qian 80 NULL 9901 Wang 80 9902 Li 90 鏈表的遍歷-函數(shù) void Print_Stu_Doc(struct stud_node * head) { struct stud_node * ptr。 if(head == NULL){ printf(\nNo Records\n)。 return。 } printf(\nThe Students39。 Records Are: \n)。 printf( Num Name Score\n)。 for(ptr = head。 ptr!=NULL。 ptr = ptrnext) printf(%8d %20s %6d \n, ptrnum, ptrname, ptrscore)。 } snext = ptrnext ptrnext = s 先連后斷 head ptr s 3. 插入結(jié)點 ptr2=ptr1next ptr1next=ptr2next head ptr1 ptr2 free(ptr2) 先接后刪 4. 刪除結(jié)點 ptr2 head ptr1
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1