




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、上機(jī)實(shí)驗(yàn)題1. 創(chuàng)建一個(gè)單鏈表l(包含頭結(jié)點(diǎn)),寫一算法將其倒置,并將對(duì)應(yīng)的程序調(diào)試運(yùn)行通過。要求:鏈表的長度可以由用戶自行確定,不要倒置頭結(jié)點(diǎn)。#include <stdio.h>#include <stdlib.h>#define overflow -2#define ok 1typedef int elemtype;typedef int status;typedef struct lnode elemtype data; struct lnode *next;lnode, *linklist;status reverselinklist(linklist &am
2、p;l) /倒置單鏈表時(shí)不倒置頭結(jié)點(diǎn)lnode *p, *q;p=l->next->next; /*p指向鏈表的開始結(jié)點(diǎn)之后的結(jié)點(diǎn)*/l->next->next=null; /將原鏈表一分為二,一個(gè)是用頭結(jié)點(diǎn)和/鏈表的開始結(jié)點(diǎn)組成新鏈表,另外一個(gè)是原鏈表的剩余部分while (p)q=p; /每次從第二個(gè)鏈表中取出開始結(jié)點(diǎn),其地址用q紀(jì)錄p=p->next;q->next=l->next;/將q指向結(jié)點(diǎn)插入到新鏈表的頭結(jié)點(diǎn)之后l->next=q; return ok;status initlinklist(linklist &l) /初始
3、化單鏈表lnode *p=(linklist)malloc(sizeof(lnode);if (!p) exit(overflow);l=p;p->next = null; /生成一個(gè)帶頭結(jié)點(diǎn)的空鏈表return ok;status createlinklist(linklist &l) /根據(jù)用戶輸入來創(chuàng)建單鏈表int n;lnode *p, *q;q=l;while (1)printf("please enter the next data element of the list: ");scanf("%d", &n);if (
4、n!= -1) /當(dāng)用戶輸入-1時(shí),停止輸入數(shù)據(jù)元素p=(linklist)malloc(sizeof(lnode);if (!p) exit(overflow);p->data = n;p->next=null;q->next=p;q=p;elsebreak;return ok;status printlinklist(linklist l)lnode *p;p=l->next;if (p=null)printf("this list is empty.");elsewhile (p!=null)printf("%d ", p-
5、>data);p=p->next;return ok;status main()linklist l;initlinklist(l); /初始化單鏈表createlinklist(l); /創(chuàng)建單鏈表printf("before link reversing.n");printlinklist(l); /打印單鏈表reverselinklist(l); /對(duì)單鏈表進(jìn)行逆置printf("nafter link reversing.n");printlinklist(l); /打印逆置后的單鏈表getchar(); /此句和下句僅為檢驗(yàn)結(jié)果輸出
6、而加getchar(); return ok;2. 已知線性表c= a1, b1, a2, b2,an,bn,采用單鏈表l(包含頭結(jié)點(diǎn))存放,寫一算法將其拆分成兩個(gè)線性表(分別用帶頭結(jié)點(diǎn)的單鏈表存放),使得:a=a1, a2, ,an, b=b1,b2,bn并將對(duì)應(yīng)的程序調(diào)試運(yùn)行通過。#include <stdio.h>#include <stdlib.h>#define overflow -2#define ok 1typedef int elemtype;typedef int status;typedef struct lnode elemtype data; s
7、truct lnode *next;lnode, *linklist;status initlinklist(linklist &l) /初始化單鏈表lnode *p=(linklist)malloc(sizeof(lnode);if (!p) exit(overflow);l=p;p->next = null; /生成一個(gè)帶頭結(jié)點(diǎn)的空鏈表return ok;status createlinklist(linklist &l) /根據(jù)用戶輸入來創(chuàng)建單鏈表int n;lnode *p, *q;q=l;while (1)printf("please enter th
8、e next data element of the list: ");scanf("%d", &n);if (n!= -1) /當(dāng)用戶輸入-1時(shí),停止輸入數(shù)據(jù)元素p=(linklist)malloc(sizeof(lnode);if (!p) exit(overflow);p->data = n;p->next=null;q->next=p;q=p;elsebreak;return ok;status printlinklist(linklist l)lnode *p;p=l->next;if (p=null)printf(&qu
9、ot;this list is empty.");elsewhile (p!=null)printf("%d ", p->data);p=p->next;return ok;status splitlinklist(linklist &l, linklist &la, linklist &lb) linklist pa = la, pb = lb, p = l->next; /pa指向la中的最后一個(gè)結(jié)點(diǎn),p /指向l中的第一個(gè)結(jié)點(diǎn)int counter = 1; /計(jì)數(shù)器, 奇數(shù)位上結(jié)點(diǎn)加入la,偶數(shù)位上結(jié)點(diǎn)加 /入lb
10、while (p) /線性表非空l->next = p->next; /將當(dāng)前結(jié)點(diǎn)從l中摘下來p->next = null; /此結(jié)點(diǎn)將成為la或lb中的最后一個(gè)結(jié)點(diǎn)if (counter % 2) = 1) / 將此結(jié)點(diǎn)加入lapa->next=p;pa=pa->next;else / counter%2 = 0, 將此結(jié)點(diǎn)加入lbpb->next=p;pb=pb->next;p=l->next;counter+;return ok;status main()linklist l, la, lb;initlinklist(l);initlinklist(la);initlinklist(lb);createlinklist(l);printf("the original linklist :");printlinklist(l);printf("is to be split into two.n"); splitlinklist(l,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 銀行網(wǎng)點(diǎn)業(yè)務(wù)運(yùn)營流程規(guī)范
- 勞動(dòng)教育引導(dǎo)大學(xué)生就業(yè)觀念的塑造與提升
- 在線教育培訓(xùn)服務(wù)合同協(xié)議書版
- 供水管線完善工程實(shí)施方案(范文模板)
- 我的夢(mèng)想與努力抒情文(5篇)
- 石油工程專業(yè)知識(shí)重點(diǎn)
- 音樂制作與錄音工程教程
- 企業(yè)宣傳印刷品制作合同協(xié)議
- 國際商務(wù)管理與跨文化交流試題集
- 建筑工程材料知識(shí)考核
- 醬料生產(chǎn)知識(shí)培訓(xùn)課件模板
- 藥品網(wǎng)絡(luò)銷售監(jiān)督管理辦法培訓(xùn)
- 天車軌道梁加固安全施工方案
- 脫發(fā)介紹演示培訓(xùn)課件
- 初中物理教材插圖原理集錦(回歸教材)
- 腸梗阻護(hù)理查房(小腸減壓管的應(yīng)用)
- 2024屆遼寧省沈陽市東北育才校中考沖刺卷物理試題含解析
- 抗菌藥物合理應(yīng)用
- 初中體育籃球雙手胸前傳接球教案
- 中建盤扣式落地卸料平臺(tái)施工方案
- 配電網(wǎng)技術(shù)標(biāo)準(zhǔn)(施工驗(yàn)收分冊(cè))
評(píng)論
0/150
提交評(píng)論