版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
C語言程序設(shè)計(jì)第8章結(jié)構(gòu)體程序設(shè)計(jì)
C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)整體概述THEFIRSTPARTOFTHEOVERALLOVERVIEW,PLEASESUMMARIZETHECONTENT第一部分第8章結(jié)構(gòu)體程序設(shè)計(jì)8.1結(jié)構(gòu)體數(shù)據(jù)概述8.2結(jié)構(gòu)體類型和結(jié)構(gòu)體變量8.3結(jié)構(gòu)體數(shù)組8.4結(jié)構(gòu)體指針變量8.5使用鏈表存儲數(shù)據(jù)8.6鏈表的基本操作8.7結(jié)構(gòu)體應(yīng)用程序舉例C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.1結(jié)構(gòu)體數(shù)據(jù)概述結(jié)構(gòu)體數(shù)據(jù)是由多個(gè)數(shù)據(jù)項(xiàng)組合而成的數(shù)據(jù),如表8-1所示的學(xué)生信息表,當(dāng)把每一行視為一個(gè)完整數(shù)據(jù)時(shí),該數(shù)據(jù)就是一個(gè)結(jié)構(gòu)體數(shù)據(jù)。為了有效地處理這樣一類組合數(shù)據(jù),C語言提供了“結(jié)構(gòu)體”技術(shù),它可以把多個(gè)數(shù)據(jù)項(xiàng)組合起來,作為一個(gè)數(shù)據(jù)整體進(jìn)行處理。學(xué)號姓名性別成績9901liujiaM879902wangkaiM899903xiaohuaF819904zhangliF829905wangfengM88C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.1結(jié)構(gòu)體數(shù)據(jù)概述使用結(jié)構(gòu)體數(shù)據(jù)的一般過程針對具體組合數(shù)據(jù),定義結(jié)構(gòu)體數(shù)據(jù)類型。使用已定義的結(jié)構(gòu)體數(shù)據(jù)類型,定義結(jié)構(gòu)體變量。使用定義的結(jié)構(gòu)體變量存儲結(jié)構(gòu)體數(shù)據(jù)。
定義結(jié)構(gòu)體類型定義結(jié)構(gòu)體變量存儲結(jié)構(gòu)體數(shù)據(jù)C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.2結(jié)構(gòu)體類型和結(jié)構(gòu)體變量8.2.1結(jié)構(gòu)體程序示例8.2.2定義結(jié)構(gòu)體數(shù)據(jù)類型8.2.3結(jié)構(gòu)體變量的定義及使用C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.2.1結(jié)構(gòu)體程序示例例8-1利用結(jié)構(gòu)體變量存儲表8-1中第1行的學(xué)生數(shù)據(jù),并輸出其姓名和成績。#include<stdio.h>structstudent/*定義結(jié)構(gòu)體數(shù)據(jù)類型*/{ intnum; charname[20]; charsex; intscore;};intmain(){
structstudentstu={9011,"liujia",'M',87}; printf("Name:%s\n",); printf("Score:%d\n",stu.score); return0;}存儲結(jié)構(gòu)體數(shù)據(jù)C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.2.2定義結(jié)構(gòu)體數(shù)據(jù)類型定義結(jié)構(gòu)體類型的一般格式struct結(jié)構(gòu)體名{
成員表};說明:⑴“結(jié)構(gòu)體名”是用戶定義的結(jié)構(gòu)體的名字,在以后定義結(jié)構(gòu)體變量時(shí),使用該名字進(jìn)行類型標(biāo)識。⑵“成員表”是對結(jié)構(gòu)體數(shù)據(jù)中每一個(gè)數(shù)據(jù)項(xiàng)的變量說明,其格式與說明一個(gè)變量的一般格式相同:數(shù)據(jù)類型名成員名;⑶“struct”是關(guān)鍵字,“struct結(jié)構(gòu)體名”是結(jié)構(gòu)體類型標(biāo)識符,在類型定義和類型使用時(shí)“struct”都不能省略。⑷結(jié)構(gòu)體名稱可以省略,此時(shí)定義的結(jié)構(gòu)體稱為無名結(jié)構(gòu)體。C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)9.1.2結(jié)構(gòu)體類型定義學(xué)生組合數(shù)據(jù)的結(jié)構(gòu)體類型定義:structstudent { intnum; charname[20]; charsex; intscore;};學(xué)號姓名性別成績9901liujiaM879902wangkaiM899903xiaohuaF819904zhangliF829905wangfengM88C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.2.3結(jié)構(gòu)體變量的定義及使用1.定義結(jié)構(gòu)體變量⑴先定義結(jié)構(gòu)體類型,再定義結(jié)構(gòu)體變量。一般格式struct結(jié)構(gòu)體類型名稱結(jié)構(gòu)體變量名;如:structstudentstudent1,student2;C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.2.3結(jié)構(gòu)體變量的定義及使用⑵在定義結(jié)構(gòu)體類型的同時(shí)定義結(jié)構(gòu)體變量。一般格式struct結(jié)構(gòu)體名{
成員表}結(jié)構(gòu)體變量1,結(jié)構(gòu)體變量2,┅…,結(jié)構(gòu)體變量n;例如:
structstudent{
intnum;
charname[20];
charsex;
intscore;}student1,student2;C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.2.3結(jié)構(gòu)體變量的定義及使用⑶不定義結(jié)構(gòu)體類型名,直接定義結(jié)構(gòu)體類型變量。一般格式struct{
成員表;}結(jié)構(gòu)體變量1,結(jié)構(gòu)體變量2,…,結(jié)構(gòu)體變量n;例如:
struct{
intnum;
charname[20];
charsex;
intscore;}student1,student2;C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.2.3結(jié)構(gòu)體變量的定義及使用2.引用結(jié)構(gòu)體成員引用結(jié)構(gòu)體成員的一般格式結(jié)構(gòu)體變量名.成員名稱例如:student1.score例8-2
輸入兩個(gè)學(xué)生的信息,然后輸出學(xué)習(xí)成績高的學(xué)生的姓名和成績信息。若成績相同時(shí),只輸出第1個(gè)學(xué)生的信息。C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.2.3結(jié)構(gòu)體變量的定義及使用#include<stdio.h>structstudent{ intnum; charname[20]; charsex; intscore;}stu1,stu2;intmain(){ scanf("%d%s%c%d",&stu1.num,,&stu1.sex,&stu1.score); scanf("%d%s%c%d",&stu2.num,,&stu2.sex,&stu2.score); if(stu1.score>=stu2.score) printf("%s,%d\n",,stu1.score); else printf("%s,%d\n",,stu2.score);return0;}8.2.3結(jié)構(gòu)體變量的定義及使用說明:⑴初始化數(shù)據(jù)的個(gè)數(shù)與結(jié)構(gòu)體成員的個(gè)數(shù)應(yīng)相同,它們按成員的先后順序一一對應(yīng)賦值。⑵每個(gè)初始化數(shù)據(jù)須與其對應(yīng)的成員的數(shù)據(jù)類型一致。structstudent{intnum;charname[20];charsex;intscore;}stu={9901,"liujia",'M',87};成員初始化數(shù)據(jù)數(shù)據(jù)類型stu.num9901intstu.nameliujiacharstu.sexMcharstu.score87int3.結(jié)構(gòu)體變量的初始化struct
結(jié)構(gòu)體名結(jié)構(gòu)體變量={初始化數(shù)據(jù)};C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.3結(jié)構(gòu)體數(shù)組8.3.1結(jié)構(gòu)體數(shù)組的定義及元素引用8.3.2結(jié)構(gòu)體數(shù)組的初始化8.3.3結(jié)構(gòu)體數(shù)組應(yīng)用示例C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.3.1結(jié)構(gòu)體數(shù)組的定義及元素引用數(shù)組元素是結(jié)構(gòu)體類型的數(shù)組,稱為結(jié)構(gòu)體數(shù)組。定義方法與其他結(jié)構(gòu)體變量的定義方法相同。⑴先定義結(jié)構(gòu)體類型,然后用結(jié)構(gòu)體類型定義數(shù)組變量。例如:
structstudentinformation[100];⑵定義結(jié)構(gòu)體類型的同時(shí),定義數(shù)組變量。例如:structstudent{intyear;intmonth;intday;}date1[10],date2[10];C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.3.1結(jié)構(gòu)體數(shù)組的定義及元素引用⑶定義無類型名的結(jié)構(gòu)體數(shù)組變量。例如:struct{intyear;intmonth;intday;}date1[10],date2[10];引用結(jié)構(gòu)體數(shù)組成員的一般格式結(jié)構(gòu)體數(shù)組名[下標(biāo)].成員名information[20].score=91;C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.3.2結(jié)構(gòu)體數(shù)組的初始化結(jié)構(gòu)體數(shù)組的初始化例如:structstudentinfo[3]={{9901,"liujia",'M',87},{9902,"wangkai",'M',89},{9903,"xiaohua",'F',81}};數(shù)組元素成員num成員name成員sex成員scoreinfo[0]9901liujiaM87info[1]9902wangkaiM89info[2]9903xiaohuaF81C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.3.3結(jié)構(gòu)體數(shù)組應(yīng)用實(shí)例例8-3
參照表8-1的數(shù)據(jù),輸入一個(gè)班級的學(xué)生信息,并把學(xué)習(xí)成績超過全班平均成績的學(xué)生找出來,輸出這部分學(xué)生的姓名和成績。分析⑴定義學(xué)生數(shù)據(jù)結(jié)構(gòu)體類型,定義存儲學(xué)生數(shù)據(jù)的結(jié)構(gòu)體數(shù)組。⑵向結(jié)構(gòu)體數(shù)組輸入學(xué)生數(shù)據(jù),并計(jì)算“成績”平均值。⑶查找結(jié)構(gòu)體數(shù)組中符合條件的數(shù)據(jù),并輸出結(jié)果。C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.3.3利用結(jié)構(gòu)體數(shù)組管理學(xué)生數(shù)據(jù)#include<stdio.h>#defineN5structstudent{ intnum; charname[20]; charsex; intscore;}stu[N];
intmain(void){inti,ave=0;for(i=0;i<N;i++){scanf("%d%s%c%d",&stu[i].num,stu[i].name,&stu[i].sex,&stu[i].score);ave+=stu[i].score;}ave=ave/N;printf("Average:%d\n",ave);for(i=0;i<N;i++)
if(stu[i].score>ave)printf("%-20s%d\n",stu[i].name,stu[i].score);return0;}
C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.4結(jié)構(gòu)體指針變量指向結(jié)構(gòu)體數(shù)據(jù)的指針變量,稱為結(jié)構(gòu)體指針變量。與其他類型的指針一樣,結(jié)構(gòu)體指針變量既可以指向單一的結(jié)構(gòu)體變量,也可以指向結(jié)構(gòu)體數(shù)組變量,結(jié)構(gòu)體指針還可以作函數(shù)的參數(shù)。C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.4結(jié)構(gòu)體指針變量8.4.1結(jié)構(gòu)體指針變量的定義及使用8.4.2結(jié)構(gòu)體指針作函數(shù)的參數(shù)C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.4.1結(jié)構(gòu)體指針變量的定義及使用定義結(jié)構(gòu)體指針變量的一般形式:struct結(jié)構(gòu)體名*結(jié)構(gòu)體指針變量名;例如:structstudent*p,*q;structstudentstud1,info[10];p=&stud1;q=info;pstud1變量qinfo數(shù)組成員引用std1.num與p->num等價(jià)info[1].num與q[1]->num等價(jià)C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.4.1結(jié)構(gòu)體指針變量的定義及使用intmain(){ structstudentstu,*p; p=&stu;
p->num=9911; strcpy(p->name,"changjiang");
p->sex='F';
p->score=91; printf("Num:%d\nName:%s\n",p->num,p->name); printf("Sex:%c\nScore:%d\n",p->sex,p->score);return0;}例8-4
結(jié)構(gòu)體指針用法示例。/*programe8-4.c*/#include<stdio.h>#include<string.h>structstudent{ intnum; charname[20]; charsex; intscore;};C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.4.1結(jié)構(gòu)體指針變量的定義及使用例8-5指向結(jié)構(gòu)體數(shù)組的指針應(yīng)用示例。#include<stdio.h>structstudent{ intnum; charname[20]; charsex; intscore;}stu[3]={9913,"xiaoli",'F',81,9914,"zhanghua",'M',82,9915,"wangjun",'F',88};intmain(){ structstudent*p;
for(p=stu;p<stu+3;p++) printf("%d%20s%3c%4d\n",p->num,p->name,p->sex,p->score);return0;}共3組初始化數(shù)據(jù)結(jié)構(gòu)體指針變量C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)intmain()
{voidoutput(structsudent*,int);
output(stu,N);
return0;
}
voidoutput(struct
student*p,intn)
{inti;
for(i=0;i<n;i++,p++)
printf("%d%20s%3c%4d\n",
p->num,p->name,p->sex,p->score);
}
/*programe8-6.c*/#include<stdio.h>#defineN3structstudent{intnum;charname[20];charsex;intscore;}stu[N]={9913,"xiaoli",'F',81,9914,"zhanghua",'M',82,9915,"wangjun",'F',88};結(jié)構(gòu)體指針8.4.2結(jié)構(gòu)體指針作函數(shù)的參數(shù)例8-6
結(jié)構(gòu)體指針作函數(shù)參數(shù)示例。結(jié)構(gòu)體數(shù)組名C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.5使用鏈表存儲數(shù)據(jù) 8.5.1使用鏈表存儲數(shù)據(jù)示例8.5.2鏈表的特點(diǎn)8.5.3動態(tài)內(nèi)存管理函數(shù)8.5.4定義鏈表結(jié)構(gòu)C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.5.1鏈表的概念
鏈表是結(jié)構(gòu)體最重要的應(yīng)用,它是一種非固定長度的數(shù)據(jù)結(jié)構(gòu),是一種動態(tài)存儲技術(shù),它能夠根據(jù)數(shù)據(jù)的結(jié)構(gòu)特點(diǎn)和數(shù)量使用內(nèi)存,尤其適用于數(shù)據(jù)個(gè)數(shù)可變的數(shù)據(jù)存儲。使用鏈表存儲表中前3個(gè)學(xué)生數(shù)據(jù)。學(xué)號姓名性別成績9901liujiaM879902wangkaiM899903xiaohuaF819904zhangliF829905wangfengM88C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.5.1鏈表的概念
⑴申請一段內(nèi)存M,并把它分成兩部分:一部分存儲數(shù)據(jù);另一部分存儲下一個(gè)內(nèi)存段的地址。⑵
將一個(gè)學(xué)生數(shù)據(jù)存儲在M的數(shù)據(jù)區(qū)中。⑶若當(dāng)前是第一個(gè)數(shù)據(jù),則將M的首地址保存在指針變量head中;否則將M的首地保存在上一個(gè)內(nèi)存段中。⑷
重復(fù)⑴、⑵、⑶的過程,直到所有數(shù)據(jù)存儲完畢,在最后一段內(nèi)存的地址區(qū)存儲結(jié)束標(biāo)志。C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.5.2鏈表的特點(diǎn)⑴
鏈表中的結(jié)點(diǎn)具有完全相同的結(jié)構(gòu),每一個(gè)結(jié)點(diǎn)存儲一個(gè)獨(dú)立的結(jié)構(gòu)體數(shù)據(jù);⑵鏈表的結(jié)點(diǎn)由系統(tǒng)隨機(jī)分配,它們在內(nèi)存中的位置可能是相鄰的,也可能是不相鄰的,結(jié)點(diǎn)之間的聯(lián)系是通過指針域?qū)崿F(xiàn)的;⑶為了能準(zhǔn)確的定位第一個(gè)結(jié)點(diǎn),每個(gè)鏈表要有一個(gè)表頭指針,從第一個(gè)結(jié)點(diǎn)開始,沿指針鏈能遍歷鏈表中的所有結(jié)點(diǎn);⑷鏈表中的結(jié)點(diǎn)是在需要時(shí)用calloc()申請的,當(dāng)不再需要時(shí),應(yīng)有free()函數(shù)釋放所占用的內(nèi)存段。⑸一個(gè)鏈表不需要事先說明它要包括的結(jié)點(diǎn)數(shù)目,在需要存儲新的數(shù)據(jù)時(shí),就可增加結(jié)點(diǎn),需要?jiǎng)h除數(shù)據(jù)時(shí),就減少結(jié)點(diǎn),鏈表結(jié)點(diǎn)是動態(tài)變化的。C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.5.3動態(tài)內(nèi)存管理函數(shù)動態(tài)分配內(nèi)存按需分配內(nèi)存,申請獲得制。C語言通過動態(tài)內(nèi)存管理函數(shù),實(shí)現(xiàn)動態(tài)內(nèi)存管理。鏈表每一個(gè)結(jié)點(diǎn)的建立和刪除過程,都需要使用動態(tài)內(nèi)存管理函數(shù)。C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.5.3動態(tài)內(nèi)存管理函數(shù)1.malloc()函數(shù)函數(shù)原型void*malloc(unsignedintsize);功能分配一塊長度為size字節(jié)的連續(xù)空間,并將該空間的首地址作為函數(shù)的返回值。如果函數(shù)沒有成功執(zhí)行,返回值為空指針(NULL或0)。由于返回的指針的基類型為void,應(yīng)該通過顯式類型轉(zhuǎn)換后才能存入其他基類型的指針變量中,否則會有警告提示。例如:
int*p;
p=(int*)malloc(sizeof(int));8.5.3動態(tài)內(nèi)存管理函數(shù)2.free()函數(shù)函數(shù)原型voidfree(void*block);功能釋放以前分配給指針變量block的動態(tài)空間,但指針變量block不會自動變成空指針。例如:free(block)C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.5.3動態(tài)內(nèi)存管理函數(shù)3.calloc()函數(shù)函數(shù)原型void*calloc(unsignedint
n,unsigned
intsize);功能以size為單位大小共分配n*size個(gè)字節(jié)的連續(xù)空間,并將該空間的首地址作為函數(shù)的返回值。如果函數(shù)沒有成功執(zhí)行,返回值為空指針(NULL或0)。例如:int*p;p=(int*)calloc(10,sizeof(int));8.5.4定義鏈表結(jié)構(gòu)要定義一個(gè)鏈表結(jié)點(diǎn)的結(jié)構(gòu),須有兩項(xiàng)內(nèi)容:定義數(shù)據(jù)存儲所對應(yīng)的各個(gè)成員;定義指向其他結(jié)點(diǎn)的指針成員。例如:假若要用鏈表逐個(gè)存儲一批整數(shù),其結(jié)點(diǎn)結(jié)構(gòu)可定義如下:structnode{intdata;structnode*next;};存儲具體數(shù)據(jù)存儲下一個(gè)節(jié)點(diǎn)的地址structnode類型的結(jié)點(diǎn)形成的鏈表頭指針空指針C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.5.4定義鏈表結(jié)構(gòu) 學(xué)號姓名性別成績9901liujiaM879902wangkaiM899903xiaohuaF819904zhangliF829905wangfengM88structstudent{ intnum; charname[20]; charsex; intscore; structstudent*next;};必須的成員,否則構(gòu)不成鏈表學(xué)生鏈表的結(jié)點(diǎn)定義結(jié)點(diǎn)C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.6鏈表的基本操作8.6.1鏈表結(jié)點(diǎn)的插入8.6.2鏈表結(jié)點(diǎn)的刪除8.6.3鏈表結(jié)點(diǎn)的查找 C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.6.1鏈表結(jié)點(diǎn)的插入在鏈表中插入結(jié)點(diǎn),就是把一個(gè)新結(jié)點(diǎn)連接到鏈表中。兩種情況:在空鏈表中插入一個(gè)結(jié)點(diǎn);在鏈表的p結(jié)點(diǎn)之后插入一個(gè)新結(jié)點(diǎn)。C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.6.1鏈表結(jié)點(diǎn)的插入1.在空鏈表中插入一個(gè)結(jié)點(diǎn)空鏈表就是頭指針head為空的鏈表。⑴申請一個(gè)new結(jié)點(diǎn)。new=(structnode*)calloc(1,sizeof(structnode));⑵為p結(jié)點(diǎn)填充數(shù)據(jù)。將要存儲的數(shù)據(jù)對應(yīng)賦值給p結(jié)點(diǎn)數(shù)據(jù)域的各個(gè)成員。⑶修改有關(guān)指針的指向。①將new的next成員置空,使new結(jié)點(diǎn)成為鏈表的最后一個(gè)結(jié)點(diǎn)。②將head指向new結(jié)點(diǎn)。C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.6.1鏈表結(jié)點(diǎn)的插入2.在head鏈表的p結(jié)點(diǎn)之后插入一個(gè)結(jié)點(diǎn)head鏈表和要插入結(jié)點(diǎn)new如圖所示。要將new結(jié)點(diǎn)插入在p結(jié)點(diǎn)之后,就是將new結(jié)點(diǎn)變成結(jié)點(diǎn)C的下一個(gè)結(jié)點(diǎn),而使new的下一個(gè)結(jié)點(diǎn)成為結(jié)點(diǎn)D。⑴使new的指針域存儲結(jié)點(diǎn)D的首地址。new->next=p->next;⑵把new的首地址存儲到結(jié)點(diǎn)p的指針域中。p->next=new;C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.6.1鏈表結(jié)點(diǎn)的插入insert()函數(shù)功能:在head鏈表的p結(jié)點(diǎn)之后插入值為x的結(jié)點(diǎn)structstudent*insert(structnode*head,structnode*p,intx){ structnode*new; new=(structnode*)calloc(1,sizeof(structnode)); new->data=x; if(head==NULL) { head=new; head->next=NULL; } else { new->next=p->next; p->next=new; } returnhead;}C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.6.1鏈表結(jié)點(diǎn)的插入例8-7
用插入結(jié)點(diǎn)的方法建立圖示的學(xué)生成績鏈表,鏈表head有10個(gè)結(jié)點(diǎn),每個(gè)結(jié)點(diǎn)存儲一個(gè)學(xué)生的學(xué)號和學(xué)習(xí)成績數(shù)據(jù)。程序:e8-7.c所需函數(shù)的功能creat_node()函數(shù):生成一個(gè)鏈表結(jié)點(diǎn)。creat_list()函數(shù):生成有n個(gè)structs_node型結(jié)點(diǎn)的鏈表,函數(shù)的返回值是鏈表的頭指針。out_list()函數(shù):用于輸出head鏈表的各結(jié)點(diǎn)值。C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.6.1鏈表結(jié)點(diǎn)的插入#include<stdio.h>#defineN10structs_node/*定義結(jié)點(diǎn)類型*/{ charnum[4]; intscore; structs_node*next;};intmain(){ structs_node*create_node(void); structs_node*create_list(intn); voidout_list(structs_node*head); structs_node*head=NULL; head=create_list(N); out_list(head);return0;}C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.6.1鏈表結(jié)點(diǎn)的插入/*生成一個(gè)鏈表結(jié)點(diǎn)的函數(shù)*/structs_node*create_node(void){ structs_node*p; p=(structs_node*)calloc(1,sizeof(structs_node)); scanf("%s%d",p->num,&(p->score)); p->next=NULL; return(p);}C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.6.1鏈表結(jié)點(diǎn)的插入structs_node*create_list(intn){ structs_node*new,*p; structs_node*head; inti; if(n>=1) { new=create_node(); head=new; p=new; } for(i=2;i<=n;i++) { new=create_node(); p->next=new; p=new; } if(n>=1) return(head); else return(NULL);}建立含有n個(gè)結(jié)點(diǎn)的鏈表的函數(shù)C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.6.1鏈表結(jié)點(diǎn)的插入/*輸出head鏈表中所有結(jié)點(diǎn)的函數(shù)*/voidout_list(structs_node*head){ structs_node*p; if(head!=NULL) { p=head; while(p!=NULL) { printf("%s%d\n",p->num,p->score); p=p->next; } }}C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.6.2鏈表結(jié)點(diǎn)的刪除從鏈表中刪除結(jié)點(diǎn),就是撤銷結(jié)點(diǎn)在鏈表中的鏈接,把結(jié)點(diǎn)從鏈表中孤立出來。刪除結(jié)點(diǎn)過程:把指定的結(jié)點(diǎn)從鏈表中拿下來,通過修改有關(guān)結(jié)點(diǎn)的指針域?qū)崿F(xiàn);釋放該結(jié)點(diǎn)使用的內(nèi)存空間,使用free()函數(shù)來實(shí)現(xiàn)。
刪除p結(jié)點(diǎn)時(shí)指針變化情況
刪除p結(jié)點(diǎn)后的head鏈表C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.6.2鏈表結(jié)點(diǎn)的刪除⑴若p結(jié)點(diǎn)是鏈表的第一個(gè)結(jié)點(diǎn),則將p指針域的地址保存到head中,使p的后繼結(jié)點(diǎn)成為head鏈表的第一個(gè)結(jié)點(diǎn),然后轉(zhuǎn)步驟⑶。修改指針操作:head=head->next;或head=p->next;⑵若p結(jié)點(diǎn)不是鏈表的第一個(gè)結(jié)點(diǎn),則首先從head開始,找到p結(jié)點(diǎn)的前一個(gè)結(jié)點(diǎn)q,然后使q的指針域存儲p的后繼結(jié)點(diǎn)的地址,這樣沿鏈表的指針訪問鏈表中的結(jié)點(diǎn)時(shí),p結(jié)點(diǎn)將不會被訪問到,亦即p結(jié)點(diǎn)從鏈表head中被刪除了。修改指針操作:q->next=p->next;⑶釋放p結(jié)點(diǎn)使用的內(nèi)存空間free(p);
在head鏈表中刪除p結(jié)點(diǎn)的delete()函數(shù)
刪除結(jié)點(diǎn)步驟C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.6.2鏈表結(jié)點(diǎn)的刪除/*delete()函數(shù)*/structnode*delete(structnode*head,structnode*p){ structnode*q; if(p==NULL)return(head); if(p==head)head=head->next; else { q=head; while(q->next!=p)q=q->next; q->next=p->next; } free(p); returnhead;}8.6.3鏈表結(jié)點(diǎn)的查找鏈表查找是從鏈表的第一個(gè)結(jié)點(diǎn)開始,沿著指針鏈,用查找值與鏈表結(jié)點(diǎn)逐個(gè)比較的過程。找到符合要求的結(jié)點(diǎn)之后,停止查找過程,返回相應(yīng)結(jié)點(diǎn)的指針,否則返回一個(gè)空指針。在head鏈表中查找data值為m的結(jié)點(diǎn)的過程,其中p為structnode型指針:⑴p=head;⑵當(dāng)p≠NULL時(shí),若p->data==m,則找到要求結(jié)點(diǎn),查找結(jié)束,返回結(jié)點(diǎn)地址p;否則,執(zhí)行下一步⑶;當(dāng)p==NULL時(shí),鏈表中不存在要找的結(jié)點(diǎn),查找結(jié)束,返回空指針NULL;⑶p=p->next,轉(zhuǎn)步驟⑵。C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.6.3鏈表結(jié)點(diǎn)的查找查找函數(shù)find()structnode*find(structnode*head,intm){structnode*p=head;while(p!=NULL&&p->data!=m)p=p->next;if(p==NULL)returnNULL;elsereturnp;}C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.6.3鏈表結(jié)點(diǎn)的查找例8-8
對圖示的head鏈表,刪除其值是x的結(jié)點(diǎn)。具體要求:⑴輸出被刪除結(jié)點(diǎn)的值;⑵當(dāng)指定值結(jié)點(diǎn)不存在時(shí),顯示一個(gè)提示信息;⑶x的值由鍵盤輸入。程序e8-8.c
分析該問題的關(guān)鍵點(diǎn)有兩點(diǎn):查找data等于x的結(jié)點(diǎn)p;刪除p結(jié)點(diǎn)。C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)8.7結(jié)構(gòu)體應(yīng)用程序舉例字符串加密學(xué)生數(shù)據(jù)綜合處理C語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第2版)語言程序設(shè)計(jì)-理論方法與實(shí)踐(第
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026湖北省定向西南政法大學(xué)選調(diào)生招錄參考題庫附答案
- 2026湖南邵陽邵東市市直事業(yè)單位人才引進(jìn)62人參考題庫附答案
- 2026福建兆佳貿(mào)易有限公司招聘9人考試備考題庫附答案
- 2026福建泉州市面向北京航空航天大學(xué)選優(yōu)生選拔引進(jìn)參考題庫附答案
- 2026福建省面向南京航空航天大學(xué)選調(diào)生選拔工作備考題庫附答案
- 2026福建莆田市城廂區(qū)國信產(chǎn)業(yè)投資有限公司招聘5人備考題庫附答案
- 2026西藏林芝市察隅縣招聘第二批社區(qū)工作者4人參考題庫附答案
- 2026遼寧省中國醫(yī)科大學(xué)及附屬第一醫(yī)院招聘高層次和急需緊缺人才2人(第二批)參考題庫附答案
- 產(chǎn)品研發(fā)與創(chuàng)新管理制度
- 2026陜西省面向中山大學(xué)招錄選調(diào)生考試備考題庫附答案
- 培養(yǎng)小學(xué)生的實(shí)驗(yàn)操作能力
- 河南省洛陽市2023-2024學(xué)年九年級第一學(xué)期期末質(zhì)量檢測數(shù)學(xué)試卷(人教版 含答案)
- Unit-3-Reading-and-thinking課文詳解課件-高中英語人教版必修第二冊
- 氣動回路圖與氣動元件課件
- 《念奴嬌 赤壁懷古》《永遇樂 京口北固亭懷古》《聲聲慢》默寫練習(xí) 統(tǒng)編版高中語文必修上冊
- 婦產(chǎn)科病史采集臨床思維
- 眾辰變頻器z2400t-15gy-1說明書
- DB63T 393-2002草地鼠蟲害、毒草調(diào)查技術(shù)規(guī)程
- 船體振動的衡準(zhǔn)及減振方法
- 復(fù)議訴訟證據(jù)清單通用版
- 水泥混凝土路面滑模攤鋪機(jī)施工工法
評論
0/150
提交評論