




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 1 所謂建立動態(tài)鏈表是指在程序執(zhí)行過程所謂建立動態(tài)鏈表是指在程序執(zhí)行過程中從無到有地建立起一個鏈表,即一個中從無到有地建立起一個鏈表,即一個一個地開辟結(jié)點和輸入各結(jié)點數(shù)據(jù),并一個地開辟結(jié)點和輸入各結(jié)點數(shù)據(jù),并建立起前后相鏈的關(guān)系。建立起前后相鏈的關(guān)系。2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 2 例例9.9 寫一函數(shù)建立一個有寫一函數(shù)建立一個有3名學(xué)生數(shù)名學(xué)生數(shù)據(jù)的單向據(jù)的單向動態(tài)動態(tài)鏈表。鏈表。2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 3 解題思路:解題思路: 定義定義3個指針變量:個指針變量:head,p1和和p2,它
2、們都是,它們都是用來指向用來指向struct Student類型數(shù)據(jù)類型數(shù)據(jù)struct Student *head,*p1,*p2;2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 4 解題思路:解題思路: 用用malloc函數(shù)開辟第一個結(jié)點,并使函數(shù)開辟第一個結(jié)點,并使p1和和p2指向它指向它p1p1=p2=(struct Student*)malloc(LEN);p22022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 5 解題思路:解題思路: 讀入一個學(xué)生的數(shù)據(jù)給讀入一個學(xué)生的數(shù)據(jù)給p1所指的第一個結(jié)點所指的第一個結(jié)點p1scanf(%ld,%f,&p1-num,&p1
3、-score);p21010189.52022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 6 解題思路:解題思路: 讀入一個學(xué)生的數(shù)據(jù)給讀入一個學(xué)生的數(shù)據(jù)給p1所指的第一個結(jié)點所指的第一個結(jié)點 使使head也指向新開辟的結(jié)點也指向新開辟的結(jié)點headp1p2scanf(%ld,%f,&p1-num,&p1-score);1010189.52022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 7 解題思路:解題思路: 再開辟另一個結(jié)點并使再開辟另一個結(jié)點并使p1指向它,接著輸入該指向它,接著輸入該結(jié)點的數(shù)據(jù)結(jié)點的數(shù)據(jù)headp1p21010189.52022-6-20長治學(xué)院計算機(jī)
4、系長治學(xué)院計算機(jī)系 8 解題思路:解題思路: 再開辟另一個結(jié)點并使再開辟另一個結(jié)點并使p1指向它,接著輸入該指向它,接著輸入該結(jié)點的數(shù)據(jù)結(jié)點的數(shù)據(jù)headp1p21010189.5p1=(struct Student*)malloc(LEN);scanf(%ld,%f,&p1-num,&p1-score);10103902022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 9 解題思路:解題思路: 使第一個結(jié)點的使第一個結(jié)點的next成員指向第二個結(jié)點成員指向第二個結(jié)點,即,即連接第一個結(jié)點與第二個結(jié)點連接第一個結(jié)點與第二個結(jié)點 使使p2指向剛才建立的結(jié)點指向剛才建立的結(jié)點hea
5、dp1p21010189.5p2-next=p1;10103902022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 10 解題思路:解題思路: 使第一個結(jié)點的使第一個結(jié)點的next成員指向第二個結(jié)點成員指向第二個結(jié)點,即,即連接第一個結(jié)點與第二個結(jié)點連接第一個結(jié)點與第二個結(jié)點 使使p2指向剛才建立的結(jié)點指向剛才建立的結(jié)點headp1p21010189.5p2-next=p1;1010390p2=p1;2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 11 解題思路:解題思路: 再開辟另一個結(jié)點并使再開辟另一個結(jié)點并使p1指向它,接著輸入該指向它,接著輸入該結(jié)點的數(shù)據(jù)結(jié)點的數(shù)據(jù)headp1p2
6、1010189.510103902022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 12 解題思路:解題思路: 再開辟另一個結(jié)點并使再開辟另一個結(jié)點并使p1指向它,接著輸入該指向它,接著輸入該結(jié)點的數(shù)據(jù)結(jié)點的數(shù)據(jù)headp1p21010189.51010390p1=(struct Student*)malloc(LEN);scanf(%ld,%f,&p1-num,&p1-score);10107852022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 13 解題思路:解題思路: 使第使第二二個結(jié)點的個結(jié)點的next成員指向第成員指向第三三個結(jié)點個結(jié)點,即,即連接第二個結(jié)點與第三個
7、結(jié)點連接第二個結(jié)點與第三個結(jié)點 使使p2指向剛才建立的結(jié)點指向剛才建立的結(jié)點headp1p21010189.510103901010785p2-next=p1;2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 14 解題思路:解題思路: 使第使第二二個結(jié)點的個結(jié)點的next成員指向第成員指向第三三個結(jié)點個結(jié)點,即,即連接第二個結(jié)點與第三個結(jié)點連接第二個結(jié)點與第三個結(jié)點 使使p2指向剛才建立的結(jié)點指向剛才建立的結(jié)點headp1p21010189.510103901010785p2-next=p1;p2=p1;2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 15 解題思路:解題思路: 再開辟
8、另一個結(jié)點并使再開辟另一個結(jié)點并使p1指向它,接著輸入該指向它,接著輸入該結(jié)點的數(shù)據(jù)結(jié)點的數(shù)據(jù)headp1p21010189.51010390101078502022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 16 解題思路:解題思路: 再開辟另一個結(jié)點并使再開辟另一個結(jié)點并使p1指向它,接著輸入該指向它,接著輸入該結(jié)點的數(shù)據(jù)結(jié)點的數(shù)據(jù)headp1p21010189.5101039010107850p1=(struct Student*)malloc(LEN);scanf(%ld,%f,&p1-num,&p1-score);2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 1
9、7 解題思路:解題思路: 輸入的學(xué)號為輸入的學(xué)號為0,表示建立鏈表的過程完成,該,表示建立鏈表的過程完成,該結(jié)點不應(yīng)連接到鏈表中結(jié)點不應(yīng)連接到鏈表中headp1p21010189.5101039010107850NULLp2-next=NULL;2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 18#include #include #define LEN sizeof(struct Student)struct Student long num; float score; struct Student *next;int n;struct Student類型數(shù)據(jù)的長度類型數(shù)據(jù)的長度2022
10、-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 19struct Student *creat(void) struct Student *head,*p1,*p2; n=0; p1=p2=( struct Student*) malloc(LEN); scanf(“%ld,%f”,&p1-num,&p1-score); head=NULL; while(p1-num!=0) n=n+1; if(n=1) head=p1; else p2-next=p1; p2=p1; p1=(struct Student*)malloc(LEN); scanf(“%ld,%f”,&p1-
11、num,&p1-score); p2-next=NULL; return(head);p1總是總是開辟開辟新新結(jié)點結(jié)點p2總是總是指向最后結(jié)點指向最后結(jié)點用用p2和和p1連接連接兩個兩個結(jié)點結(jié)點2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 20int main() struct Student *pt; pt=creat(); printf(“nnum:%ldnscore:%5.1fn”, pt-num,pt-score); return 0;2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 21例例9.10 編寫一個輸出鏈表的函數(shù)編寫一個輸出鏈表的函數(shù)print。100167
12、.5100387100599NULLp2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 22 解題思路:解題思路: 輸出輸出p所指的結(jié)點所指的結(jié)點 使使p后移一個結(jié)點后移一個結(jié)點p100167.5100387100599NULLprintf(%ld %5.1fn,p-num,p-score);2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 23100167.5100387100599NULLp=p-next;解題思路:解題思路:u輸出輸出p所指的結(jié)點所指的結(jié)點u使使p后移一個結(jié)點后移一個結(jié)點printf(%ld %5.1fn,p-num,p-score);p2022-6-20長治學(xué)院計算
13、機(jī)系長治學(xué)院計算機(jī)系 24100167.5100387100599NULL解題思路:解題思路:u輸出輸出p所指的所指的新新結(jié)點結(jié)點u使使p后移一個結(jié)點后移一個結(jié)點printf(%ld %5.1fn,p-num,p-score);p2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 25100167.5100387100599NULLp=p-next;解題思路:解題思路:u輸出輸出p所指的所指的新新結(jié)點結(jié)點u使使p后移一個結(jié)點后移一個結(jié)點printf(%ld %5.1fn,p-num,p-score);p2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 26100167.51003871005
14、99NULLp=p-next;解題思路:解題思路:u輸出輸出p所指的所指的新新結(jié)點結(jié)點u使使p后移一個結(jié)點后移一個結(jié)點printf(%ld %5.1fn,p-num,p-score);p相當(dāng)于相當(dāng)于p=NULL;2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 27void print(struct Student *p) printf(nThese %d records are:n,n); if(p!=NULL) do printf(%ld %5.1fn, p-num,p-score); p=p-next; while(p!=NULL);2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系
15、28例例9.11 調(diào)用函數(shù)完成鏈表的建立、輸出調(diào)用函數(shù)完成鏈表的建立、輸出各結(jié)點的值、插入和刪除一個結(jié)點的功各結(jié)點的值、插入和刪除一個結(jié)點的功能能v調(diào)用調(diào)用mycreat函數(shù),建立鏈表函數(shù),建立鏈表v調(diào)用調(diào)用myinsert函數(shù),插入一個結(jié)點函數(shù),插入一個結(jié)點v調(diào)用調(diào)用mydelete函數(shù),刪除值為函數(shù),刪除值為m的結(jié)點的結(jié)點v調(diào)用調(diào)用myprint函數(shù),輸出各結(jié)點函數(shù),輸出各結(jié)點2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 29 struct lst int num; struct lst *next; ; typedef struct lst LST; 可用可用LST代替代替stru
16、ct lst 2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 30(2)編寫主函數(shù),并先用空函數(shù)占被)編寫主函數(shù),并先用空函數(shù)占被調(diào)調(diào) 函數(shù)的位置后測試函數(shù)的位置后測試 #include #include typedef struct lst int num; struct lst *next; LST; LST *mycreat( ) void myprint ( ) void myinsert ( ) int mydelete ( ) 2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 31int main( ) LST *head=NULL; int k=0, m=0, choose
17、=0; head = mycreat( ); printf (新建鏈表為: ); myprint ( head ); printf (“請選擇:1.插入 2.刪除 ”); scanf(%d, &choose ); 2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 32switch ( choose ) case 1: printf (插入點插入點: ); scanf(%d, &m );myinsert ( head, m );printf (“插入點后插入點后: ” ); myprint ( head );break;case 2: printf (刪除點刪除點: ); sc
18、anf(%d,&m);k = mydelete ( head , m );if ( k = 1 ) printf(刪除點后刪除點后: ); myprint ( head ); else printf ( “不存在不存在n );break;return 0;2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 33(3)編寫)編寫mycreat( )函數(shù),并用此函函數(shù),并用此函數(shù)代替對應(yīng)的空函數(shù)后運行程序數(shù)代替對應(yīng)的空函數(shù)后運行程序 開辟頭結(jié)點,并用開辟頭結(jié)點,并用頭指針頭指針head指向它指向它 head = (LST *) malloc ( sizeof (LST) ); head頭結(jié)
19、點頭結(jié)點numnext2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 34head頭結(jié)點頭結(jié)點qnumnext使指針變量使指針變量q也也指向該頭結(jié)點指向該頭結(jié)點 q = head; (3)編寫)編寫mycreat( )函數(shù),并用此函數(shù),并用此函數(shù)代替對應(yīng)的空函數(shù)后運行程序函數(shù)代替對應(yīng)的空函數(shù)后運行程序 2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 35head頭結(jié)點頭結(jié)點qpnumnext結(jié)點結(jié)點1numnext開辟新的結(jié)點,并使開辟新的結(jié)點,并使指針變量指針變量p指向它指向它 p = (LST *) malloc ( sizeof (LST) ); (3)編寫)編寫mycreat(
20、 )函數(shù),并用此函數(shù),并用此函數(shù)代替對應(yīng)的空函數(shù)后運行程序函數(shù)代替對應(yīng)的空函數(shù)后運行程序 2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 36head頭結(jié)點頭結(jié)點qnumnext結(jié)點結(jié)點1numnext連接新結(jié)點和當(dāng)前連接新結(jié)點和當(dāng)前鏈表的最后結(jié)點鏈表的最后結(jié)點 q - next = p; p2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 37head頭結(jié)點頭結(jié)點qnumnext結(jié)點結(jié)點1numnext將數(shù)據(jù)賦予新結(jié)將數(shù)據(jù)賦予新結(jié)點的點的num成員成員 p - num = m; 101p(3)編寫)編寫mycreat( )函數(shù),并用此函數(shù),并用此函數(shù)代替對應(yīng)的空函數(shù)后運行程序函數(shù)代替對
21、應(yīng)的空函數(shù)后運行程序 2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 38head頭結(jié)點頭結(jié)點qnumnext結(jié)點結(jié)點1numnext使使q指向新鏈表的指向新鏈表的最后一個結(jié)點最后一個結(jié)點 101p(3)編寫)編寫mycreat( )函數(shù),并用此函數(shù),并用此函數(shù)代替對應(yīng)的空函數(shù)后運行程序函數(shù)代替對應(yīng)的空函數(shù)后運行程序 2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 39head頭結(jié)點頭結(jié)點qnumnext結(jié)點結(jié)點1numnext使使q指向新鏈表的指向新鏈表的最后一個結(jié)點最后一個結(jié)點 q = p; 101p(3)編寫)編寫mycreat( )函數(shù),并用此函數(shù),并用此函數(shù)代替對應(yīng)的空函數(shù)后
22、運行程序函數(shù)代替對應(yīng)的空函數(shù)后運行程序 2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 40head頭結(jié)點頭結(jié)點numnext結(jié)點結(jié)點1numnext新結(jié)點新結(jié)點numnext開辟新的結(jié)點,并使開辟新的結(jié)點,并使指針變量指針變量p指向它指向它 101pq2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 41head頭結(jié)點頭結(jié)點numnext結(jié)點結(jié)點1numnext新結(jié)點新結(jié)點numnext開辟新的結(jié)點,并使開辟新的結(jié)點,并使指針變量指針變量p指向它指向它 101pqp = (LST *) malloc ( sizeof (LST) ); (3)編寫)編寫mycreat( )函數(shù),并用此函
23、函數(shù),并用此函數(shù)代替對應(yīng)的空函數(shù)后運行程序數(shù)代替對應(yīng)的空函數(shù)后運行程序 2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 42head頭結(jié)點頭結(jié)點numnext結(jié)點結(jié)點1numnext新結(jié)點新結(jié)點numnext連接新結(jié)點和當(dāng)前連接新結(jié)點和當(dāng)前鏈表的最后結(jié)點鏈表的最后結(jié)點 q - next = p; 101qp(3)編寫)編寫mycreat( )函數(shù),并用此函數(shù),并用此函數(shù)代替對應(yīng)的空函數(shù)后運行程序函數(shù)代替對應(yīng)的空函數(shù)后運行程序 2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 43head頭結(jié)點頭結(jié)點numnext結(jié)點結(jié)點1numnext新結(jié)點新結(jié)點numnext將數(shù)據(jù)賦予新結(jié)將數(shù)據(jù)賦予新
24、結(jié)點的點的num成員成員 p - num = m; 101q103p(3)編寫)編寫mycreat( )函數(shù),并用此函數(shù),并用此函數(shù)代替對應(yīng)的空函數(shù)后運行程序函數(shù)代替對應(yīng)的空函數(shù)后運行程序 2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 44head頭結(jié)點頭結(jié)點numnext結(jié)點結(jié)點1numnext新結(jié)點新結(jié)點numnext使使q指向新鏈表的指向新鏈表的最后一個結(jié)點最后一個結(jié)點 101q103p(3)編寫)編寫mycreat( )函數(shù),并用此函數(shù),并用此函數(shù)代替對應(yīng)的空函數(shù)后運行程序函數(shù)代替對應(yīng)的空函數(shù)后運行程序 2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 45head頭結(jié)點頭結(jié)點
25、numnext結(jié)點結(jié)點1numnext新結(jié)點新結(jié)點numnext使使q指向新鏈表的指向新鏈表的最后一個結(jié)點最后一個結(jié)點 q = p; 101q103p(3)編寫)編寫mycreat( )函數(shù),并用此函數(shù),并用此函數(shù)代替對應(yīng)的空函數(shù)后運行程序函數(shù)代替對應(yīng)的空函數(shù)后運行程序 2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 46head頭結(jié)點頭結(jié)點numnext結(jié)點結(jié)點1numnext新結(jié)點新結(jié)點numnext鏈表的最后一個鏈表的最后一個結(jié)點設(shè)為尾結(jié)點結(jié)點設(shè)為尾結(jié)點 q - next = NULL; 101q103p0(3)編寫)編寫mycreat( )函數(shù),并用此函數(shù),并用此函數(shù)代替對應(yīng)的空函
26、數(shù)后運行程序函數(shù)代替對應(yīng)的空函數(shù)后運行程序 2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 47返回鏈表頭返回鏈表頭結(jié)點的地址結(jié)點的地址 return head ; head頭結(jié)點頭結(jié)點numnext結(jié)點結(jié)點1numnext新結(jié)點新結(jié)點numnext101q103p0(3)編寫)編寫mycreat( )函數(shù),并用此函數(shù),并用此函數(shù)代替對應(yīng)的空函數(shù)后運行程序函數(shù)代替對應(yīng)的空函數(shù)后運行程序 2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 48LST *mycreat ( ) int m=0;LST *head=NULL,*p=NULL,*q=NULL;head = (LST*)malloc
27、 ( sizeof (LST) );q = head ;printf (建立鏈表,請輸入數(shù)值:建立鏈表,請輸入數(shù)值:n );printf (Input m: );scanf (%d, &m );while (m != -1 ) p = (LST*)malloc ( sizeof (LST) );q - next = p;p - num = m;q = p;printf (Input m: ); scanf (%d, &m );q - next = NULL;return head ;2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 49(4)編寫)編寫myprint ( )函
28、數(shù),并用此函數(shù)函數(shù),并用此函數(shù) 代替對應(yīng)的空函數(shù)后運行程序代替對應(yīng)的空函數(shù)后運行程序 2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 50 head頭結(jié)點頭結(jié)點 結(jié)點結(jié)點1結(jié)點結(jié)點2尾結(jié)點尾結(jié)點0101103105使指針使指針p指向鏈表中結(jié)點指向鏈表中結(jié)點1 pp = head - next; 2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 51 head頭結(jié)點頭結(jié)點 結(jié)點結(jié)點1結(jié)點結(jié)點2尾結(jié)點尾結(jié)點0101103105輸出輸出p所指結(jié)點的所指結(jié)點的num成員值成員值 pprintf (%5d, p - num ); 1012022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 52 he
29、ad頭結(jié)點頭結(jié)點 結(jié)點結(jié)點1結(jié)點結(jié)點2尾結(jié)點尾結(jié)點0101103105移動移動p,即使,即使p指向下一個結(jié)點指向下一個結(jié)點 p2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 53 head頭結(jié)點頭結(jié)點 結(jié)點結(jié)點1結(jié)點結(jié)點2尾結(jié)點尾結(jié)點0101103105移動移動p,即使,即使p指向下一個結(jié)點指向下一個結(jié)點 p2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 54 head頭結(jié)點頭結(jié)點 結(jié)點結(jié)點1結(jié)點結(jié)點2尾結(jié)點尾結(jié)點0101103105輸出輸出p所指結(jié)點的所指結(jié)點的num成員值成員值 pprintf (%5d, p - num ); 1032022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)
30、系 55 head頭結(jié)點頭結(jié)點 結(jié)點結(jié)點1結(jié)點結(jié)點2尾結(jié)點尾結(jié)點0101103105移動移動p,即使,即使p指向下一個結(jié)點指向下一個結(jié)點 p2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 56 head頭結(jié)點頭結(jié)點 結(jié)點結(jié)點1結(jié)點結(jié)點2尾結(jié)點尾結(jié)點0101103105移動移動p,即使,即使p指向下一個結(jié)點指向下一個結(jié)點 pp = p - next; 2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 57 head頭結(jié)點頭結(jié)點 結(jié)點結(jié)點1結(jié)點結(jié)點2尾結(jié)點尾結(jié)點0101103105輸出輸出p所指結(jié)點的所指結(jié)點的num成員值成員值 pprintf (%5d, p - num ); 105202
31、2-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 58移動移動p,即使,即使p指向下一個結(jié)點指向下一個結(jié)點 head頭結(jié)點頭結(jié)點 結(jié)點結(jié)點1結(jié)點結(jié)點2尾結(jié)點尾結(jié)點0101103105p2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 59 head頭結(jié)點頭結(jié)點 結(jié)點結(jié)點1結(jié)點結(jié)點2尾結(jié)點尾結(jié)點0101103105移動移動p,即使,即使p指向下一個結(jié)點指向下一個結(jié)點 不存在,所以不存在,所以 p=NULLp = p - next; 2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 60void myprint (LST *head ) LST *p=NULL; p = head - next;
32、if ( p = NULL ) printf ( 鏈表為空表鏈表為空表! ); else do printf ( %5d, p - num ); p = p - next; while ( p != NULL ); printf ( n ); 2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 61(5)編寫)編寫myinsert ( )函數(shù),并用函數(shù),并用此函數(shù)代替對應(yīng)的空函數(shù)后運行此函數(shù)代替對應(yīng)的空函數(shù)后運行程序程序 2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 62 head頭結(jié)點頭結(jié)點結(jié)點結(jié)點1尾結(jié)點尾結(jié)點結(jié)點結(jié)點2新結(jié)點新結(jié)點s 101103105 0指針指針s去開辟需去開辟需
33、插入的結(jié)點插入的結(jié)點 s = (LST*)malloc ( sizeof (LST) ); 2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 63 head頭結(jié)點頭結(jié)點結(jié)點結(jié)點1尾結(jié)點尾結(jié)點結(jié)點結(jié)點2新結(jié)點新結(jié)點s 101103105 0104需插入的數(shù)值賦予需插入的數(shù)值賦予新結(jié)點的新結(jié)點的num成員成員 s - num = m; 2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 64 head頭結(jié)點頭結(jié)點結(jié)點結(jié)點1尾結(jié)點尾結(jié)點結(jié)點結(jié)點2新結(jié)點新結(jié)點s 101103105 0104qpq指向頭結(jié)點指向頭結(jié)點 q = head; p指向結(jié)點指向結(jié)點1p = head - next; 2022
34、-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 65 head頭結(jié)點頭結(jié)點結(jié)點結(jié)點1尾結(jié)點尾結(jié)點結(jié)點結(jié)點2新結(jié)點新結(jié)點s 101103105 0104qp判斷是否找到插入點判斷是否找到插入點 if ( p - num next; p2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 68 head頭結(jié)點頭結(jié)點結(jié)點結(jié)點1尾結(jié)點尾結(jié)點結(jié)點結(jié)點2新結(jié)點新結(jié)點s 101103105 0104qq、p都移到下一個結(jié)點都移到下一個結(jié)點 q = q - next; p = p - next; p2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 69 head頭結(jié)點頭結(jié)點結(jié)點結(jié)點1尾結(jié)點尾結(jié)點新結(jié)點新結(jié)點s 1
35、01103105 0104q判斷是否找到插入點判斷是否找到插入點 if ( p - num next; 2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 72 head頭結(jié)點頭結(jié)點結(jié)點結(jié)點1尾結(jié)點尾結(jié)點結(jié)點結(jié)點2新結(jié)點新結(jié)點s 101103105 0104pq、p都移到下一個結(jié)點都移到下一個結(jié)點 q = q - next; p = p - next; q2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 73 head頭結(jié)點頭結(jié)點結(jié)點結(jié)點1尾結(jié)點尾結(jié)點結(jié)點結(jié)點2新結(jié)點新結(jié)點s 101103105 0104判斷是否找到插入點判斷是否找到插入點 if ( p - num next = p; pq - next = s; q2022-6-20長治學(xué)院計算機(jī)系長治學(xué)院計算機(jī)系 75void myinsert ( LST *head, int m ) LST *p=NULL, *q=NULL, *s=NULL; s = (LST*)malloc ( sizeof (LST) ); s - num = m; q = head; p = head - next; while(
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度美甲店轉(zhuǎn)讓合同含店鋪裝修升級及開業(yè)慶典策劃
- 2025年杭州駕??荚囏涍\從業(yè)資格證考試題庫
- 2025年新余道路運輸從業(yè)資格證考試內(nèi)容是什么
- 感謝領(lǐng)導(dǎo)發(fā)言稿
- 2025年宣城道路運輸從業(yè)人員資格考試內(nèi)容有哪些
- 2025年重慶貨運從業(yè)資格證考試題目及答案詳解
- 詳細(xì)的聘用勞動合同
- 2025年白城貨運從業(yè)資格證模擬考試保過版
- 2025年遂寧道路運輸貨運考試題庫
- 高中家長會 守望成長靜待花開課件-高一上學(xué)期家長會
- 《儲糧害蟲防治技術(shù)》課件-第六章 儲糧保護(hù)劑及其應(yīng)用
- 2024兩人合伙人合作簡單協(xié)議書范本
- 中國的地理實踐教學(xué)
- 《跟上兔子》繪本五年級第1季A-Magic-Card
- 業(yè)主授權(quán)租戶安裝充電樁委托書
- 排水管道施工組織設(shè)計排水管道施工組織設(shè)計排水施工排水管道施工施工設(shè)計
- 人工智能科普教育活動方案設(shè)計
- 第3課中古時期的西歐(教學(xué)課件)-【中職專用】《世界歷史》同步課堂(同課異構(gòu))(高教版2023?基礎(chǔ)模塊)
- 2024未來會議:AI與協(xié)作前沿趨勢白皮書
- 2024年廣東普通專升本《公共英語》完整版真題
- 國家中長期科技發(fā)展規(guī)劃(2021-2035)
評論
0/150
提交評論