版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、單鏈表: typedef struct char num20; char name50; float pri;/線性表的單鏈表存儲/數(shù)據域指針域Book; typedef struct LNodeBook book;struct LNode *next; / LNode,*LinkList;前插法創(chuàng)建圖書鏈表void Input(LinkList &L) /LinkList p; L=new LNode; L-next=NULL;/ 初始化單鏈表ifstream inFile(book.txt); if(!inFile)cerrCannot open this file!book_head1b
2、ook_head2book_head3;/ 讀取文件中的標題while(!inFile.eof()/ 到達文件尾部前逐行依次讀取所有圖書數(shù)據 p=new LNode; / 生成新結點 inFp-book.pri; p-next=L-next; / 插入到表頭L-next=p;hinFile.close();cout 讀取完畢 !next;while(p) coutleftsetw(15)book.numtleftsetw(50)tleftset w(5)book.prinext;coutn 信息顯示完畢 nnext; char
3、name120; coutname1; while(p) if(strcmp(name1,)=0)H.coutleftsetw(15)book.numtleftsetw(50)tleftset w(5)book.prinext;void Searchnum(LinkList &L)int i;int j=0;LinkList p;p=L-next;/p 指向第一個結點couti;while(p&jnext;if(!p|ji)/順著鏈表向后掃描,直到 p 指向第 i 個元素或 p 為空/第 i 個元素不存在 cout 錯誤 !endl;cout第i本書信息
4、如下:endl;coutleftsetw(15)book.numtleftsetw(50)tleftset w(5)book.prinext; p=L-next-next; while(p) if(p-book.pripmax-book.pri) pmax=p; p=p-next;coutleftsetw(15)book.numtleftsetw(50)tl eftsetw(5)book.priendl;void Sort(LinkList L) cout 此功能還未實現(xiàn),研究中 next;L-next = NULL; / 初始化鏈表ofstream out
5、File(bookinverse.txt);每一次將P插入到L(頭結點)與L-next(鏈表的第一個結點之間) while (p)q = P-next;P-next = L-next;L-next = P;P = q;P=L-next;/ 循環(huán)完后, P 指向的是鏈表末尾,需要重置回首元結點,否則無法寫入文 件while(p) coutsetw(15)book.numtsetw(50)tsetw(5)book.pri endl;outFileleftsetw(15)book.numtleftsetw(50)tlefts etw(5)book.Prinext;
6、cout 信息已寫入 bookinverse.txt 中 !next;while(P)i+;P=P-next;cout 當前的圖書總數(shù)為: iendl;/初始化/ 新結點 svoid Insert(LinkList L) Book bk; LinkList p=L; LinkList s=new LNode; int i; int j=0; cout 請輸入待插入書籍的位置 i;cout 請輸入待插入的書籍的信息 endl; cout 書號 : bk.num;cout 書名 : ;cout價格:bk.pri;/尋找第 i-1 個結點while(p&jnext; if(!p|ji-
7、1)cout 錯誤 !book=bk; s-next=p-next; p-next=s;/ 重新寫入 book.txt 文件 ofstream outFile(book.txt); p=L-next;while(p)outFileleftsetw(15)book.numtleftsetw(50)tlefts etw(5)book.prinext;cout 插入新的書籍后的書籍信息已重新寫入 book.txt 文件 endl;void Delete(LinkList L)Book bk1;/初始化/臨時保存被刪除結點的地址以備釋放LinkList p=L;LinkList q;
8、int i;int j=0;cout 請輸入待刪除書籍的位置 i;while(p-next&jnext; if(!(p-next)|ji-1) cout 錯誤 !next; p-next=q-next; bk1=q-book; delete q;/ 重新寫入 book.txt 文件 ofstream outFile(book.txt); p=L-next;while(p)outFileleftsetw(15)book.numtleftsetw(50)tlefts etw(5)book.prinext;cout 刪除所選書籍后的書籍信息已重新寫入 book.txt 文件 end
9、l;順序表typedef structBook *book;int len gth;/圖書表的圖書記錄個數(shù) SqList;void Input(SqList &L)int i=0;char book_head110,book_head210,book_head310; /定/ 義文件中標題 L.book=new BookMAXSIZE;ifstream inFile(book.txt); /打開文件if(!inFile) cerrCannot open this file!book_head1book_head2book_head3;讀 取文件中的標題L.length=0; while(!in
10、File.eof()/逐行依次讀取所有圖書數(shù)據inFileL.booki.num L.L.booki.pri;i+;/記錄圖書個數(shù)L.length=i;inFile.close();coutvvn 讀取 book.txt 信息完畢 !vvendl;void Output(SqList L)for(int i=0;iL.length;i+)coutleftsetw(15)L.booki.numtleftsetw(50)L.tleftsetw(5)L.booki.priendl;coutn 信息顯示完畢 nname1;for(y=0;yL.length;y+
11、)比較輸入的name1與結構體數(shù)組中name是否相同;if(strcmp(name1,L.)=0) coutvvleftvvsetw(15)vvL.booky.numvvtvvleftvvsetw(50)vvL.vvtvvleftvvsetw(5)vvL.booky.privvendl;break;void Searchnum(SqList &L) int i;coutvv請輸入要查找的書的位置i;coutleftsetw(15)L.booki-1.numleftsetw(50)L.leftsetw(5)L.booki-1.pri
12、endl;void Max(SqList L)int max=0;cout 價格最高的書是: endl;coutvv書號vvtvv書名vvtvv價格endl;for (int i=0;iL.bookmax.pri) max=i; coutleftsetw(15)L.bookmax.numtleftsetw(50)L.tleftsetw(5)L.bookmax.priendl;for (int j=0;jL.length-1;j+) if(j!=max)if(L.bookj.pri=L.bookmax.pri)coutleftsetw(15)L.bookj.numtlef
13、tsetw(50)L.tleftsetw(5)L.bookj.priendl;coutendl;void Sort(SqList L)/冒泡排序Book book1; / 重新定義一個結構體變量 for(int m=0;mL.length-1;m+) for(int n=0;nL.length-m-1;n+) if(L.bookn.priL.bookn+1.pri) /交換結構體數(shù)組的值 book1=L.bookn; L.bookn=L.bookn+1; L.bookn+1=book1;/寫入 booksort.txt 文件 ofstream outFile(booksor
14、t.txt,ios:out); for(m=0;mL.length-1;m+)outFileleftsetw(15)L.bookm.numtleftsetw(50)L.tleftsetw(5)L.bookm.priendl; outFile.close();coutvv排序后書籍信息已寫入booksort.txt文件endl;void Inverse(SqList L)Input(L);Book book2;int i,j,k;k=L.length/2;for(i=0;ik;i+) j=L.length-1-i;book2=L.booki;L.booki=L.bookj;L
15、.bookj=book2;寫入 bookinverse.txt 文件 ofstream outFile(bookinverse.txt);for(i=0;iL.length;i+) outFileleftsetw(15)L.booki.numtleftsetw(50)L. tleftsetw(5)L.booki.priendl;outFile.close();coutvv排序后書籍信息已寫入 booki nverse.txt文件i;coutvv請輸入待插入的書籍的信息vvendl;coutvv書號:vve ndl;cinbook3.num;coutvv書名:vvendl;c
16、;coutvv價格:vve ndl;cinbook3.pri;if(iv1|iL.length+1) /i 值不合法coutvv輸入的位置錯誤,請重新輸入:vvendl; coutvv請輸入待插入書籍的位置vvendl;cini;for(j=L.length-1;j=i-1;j-)/輸入位置及之后的元素位置后移將新元素book3放入第i個位置/表長增加 1L.bookj+1=L.bookj; L.booki-1=book3;L.length+;/重新寫入 book.txt 文件 ofstream outFile(book.txt); for(i=0;iL.length;
17、i+)outFileleftsetw(15)L.booki.numtleftsetw(50)L. tleftsetw(5)L.booki.priendl; outFile.close();coutvv插入新的書籍后的書籍信息已重新寫入book.txt文件endl;void Delete(SqList L)Book book4;int i;int j;coutvv請輸入待刪除書籍的位置i;if(iv1|iL.length)coutvv輸入的位置錯誤,請重新輸入:vve ndl;coutvv請輸入待刪除書籍的位置vvendl; cini;/將要刪除的元素保存在 book4 中 book4=L.booki-1;for(j=i;jv=L.length-1;j+)/刪除位置之后
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 內蒙古赤峰市名校2024-2025學年高二上學期期中聯(lián)考語文試題(含答案)
- 學前教育的游戲教學方法考核試卷
- 醫(yī)用電動牙刷的材質和正確使用技巧考核試卷
- 林業(yè)碳匯與氣候變化應對措施考核試卷
- 提升團隊解決問題的能力考核試卷
- 輻射防護區(qū)域劃分標準
- 心理咨詢陪伴合同
- 建筑工程施工合同樣本
- 工業(yè)廠房CFG樁基礎施工合同
- 橡膠生產電氣防爆安全指南
- 2024年銀行業(yè)法律法規(guī)知識競賽活動考試題庫(含答案)
- 2024年手工木工職業(yè)技能競賽理論考試題庫-下(多選、判斷題)
- 形勢與政策智慧樹知到答案2024年黑龍江農業(yè)工程職業(yè)學院
- 中國高端私人會所行業(yè)市場運營態(tài)勢及發(fā)展前景研判報告
- 第一、二章知識點2024-2025學年商務星球版地理七年級上冊
- 電信人工智能大學習抽測考試題庫(含答案)
- 大學歷史學《中國近現(xiàn)代史綱要》說課稿
- 2024術語工作適老化基本術語
- 2024軟件開發(fā)合作框架合同范本
- 2024年共青團入團積極分子考試試卷題庫及答案
- 2024年健康管理師實操
評論
0/150
提交評論