下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
用typedef定義數(shù)據(jù)類用戶自定義用typedef定義數(shù)據(jù)類
(int、charlong、double等):系統(tǒng)已經(jīng)定義好的數(shù)據(jù):用戶可根據(jù)實際情況,自可以根據(jù)自己的需要對已有的數(shù)據(jù)類型重新命名:用 語句定義與等價 共74 第2typedef實下述語句
int
INTEGERi,REALpai;POINTIp;
intfloatpai;int*p;共74 第3typedef typedefstructcomplx{INTEGERreal,im;}main(
/*義COMP{staticCOMPza={3,4},COMPz,cmult();voidcpr();z=cmult(za,zb);cpr(za,zb,z);}共74 第4COMPcmult(COMPzaCOMPzb*回COMP{COMPw.real=za.real*zb.real-za.im*zb.im;w.im=za.real*zb.im+za.im*zb.real;return(w);}voidcpr(COMPza,COMPzb,COMP{za.real,za.im,zb.real,printf("(%d+%di)\n",z.real,}共74 第5鏈表基礎鏈表基礎如何說明不定長度的數(shù)數(shù)組:不能進行動動態(tài)結共74 第6鏈表基礎鏈表基礎鏈表一種簡單、常見 結構,通將一組保 在一起結點包括兩部分 和結點 。如:使 描述一個學生的信息({ name[20/*息*link /*共74 第7鏈表指向鏈表表頭結點的指針(表頭指針,頭指針表結點(數(shù)據(jù)結點,也稱為結點,保存信息鏈表的圖示表數(shù)據(jù)結點數(shù)據(jù)結點
數(shù)據(jù)結點
數(shù)據(jù)結點共74 第8定義結點的結構,說明表頭指根據(jù)需要保存的信息來定義結點的結定義描述學生 /住址 )的結點typedefstruct{charstructnode* }NODE義結NODE*head說明頭指針typedefnodePNODE說明頭指針共74 第9建立表頭結點:申 空NODE*p,*p=(NODE*)malloc(sizeof(NODE)請表頭結p->link=head=
表頭結點的link置為head指向表頭結 頭指
空鏈
表頭結head=(NODE*)malloc(sizeof(NODE));head->linkNULL頭結點的link置為共74 第10 NODE*pNODE*)mallocsizeof(NODE//申請結gets(p->namep->link=head->link;head->link=p;
據(jù)存入結改結點 到表 頭指
表頭
數(shù)據(jù)共74 第11在鏈 數(shù)據(jù)結點 下一個數(shù)據(jù)結點p=(NODE*)malloc(sizeof(NODE))gets(p->namep->link=head->link;head->link=p;p
改結點指新數(shù)據(jù)新數(shù)據(jù)結
頭指
x表頭結
數(shù)據(jù)結 頭指 表頭結
共74 第12將結 到鏈表的鏈頭(程序head=(NODE*)malloc(sizeof(NODE));head->link= //head指向頭結voidcreateNODE*headintn//建n{*(;n--{p=(NODE*)malloc(sizeof(NODE));gets(p->name);p->linkhead->link改head->link }}共74 第13 鏈表中全部數(shù)據(jù)結voidoutput(NODE*head}}{NODE*p{NODE*p=head-while(p!=NULL{putsp->name);出結p=p- p向下一結頭指 表頭結
數(shù)據(jù)結點
數(shù)據(jù)結點共74 第14求鏈表長度:intlength(NODE*head{intlen;NODE*p;forlen=0p=head->linkp!=NULL++lenpp- p向下一個結return(len}^p^頭指 表頭結頭指 表頭結
數(shù)據(jù)結點
數(shù)據(jù)結點共74 第15 在第i個結點的后 新結點:基本原定位:指針q指向第i個結點,指針p指 后面指針:p->linkq前面指針:q->linkq^^head表頭結點數(shù)據(jù)結點數(shù)據(jù)結點 數(shù)據(jù)結點數(shù)據(jù)結DpD共74 第16 在第i個結點的后 新結點voidinsert_node(NODE*head,NODE*p,int{NODE*q;intfor(q=head;n<i&&q->link!=NULL;++nqq- p-=q-②后面q-=③前面}特殊情況:空 位置超過鏈表長 ^^D 表頭結
共74 第17刪除第i結點:基本原定位:q指向i-1個結點,指p指向被刪除摘鏈:q->linkp->link釋放p結點:freep^x^ 頭結 數(shù)據(jù)結點數(shù)據(jù)結點i- 數(shù)據(jù)結點 數(shù)據(jù)結 共74 第18void*i)void*i){NODE*q,*forq=headn<i-1&&q->link!=NULLnq=q->link; //①定位if(i>0&&q->link!=NULL{p=q-q->link=p-free(p}}
p向被刪除放p結px^px^^特殊指定位i長刪成空鏈 表頭結
數(shù)據(jù)結共74 第19- -^
表頭結 數(shù)據(jù)結 數(shù)據(jù)結有表頭結點的單向
數(shù)據(jù)結 數(shù)據(jù)結^^
數(shù)據(jù)結 數(shù)據(jù)結 數(shù)據(jù)結無表頭結點的單向
數(shù)據(jù)結 數(shù)據(jù)結--
表頭結
數(shù)據(jù)結 數(shù)據(jù)結 數(shù)據(jù)結 數(shù)據(jù)結有表頭結點的單向
數(shù)據(jù)結 數(shù)據(jù)結 數(shù)據(jù)結無表頭結點的單向
數(shù)據(jù)結 數(shù)據(jù)結共74 第20問十七世紀法國數(shù)學家游戲問題》中講的一個故事:15個徒和15個異在海上遇險,必須將一半的人個人圍成一個圓圈,從第1個人開始依次循環(huán)直到僅余15人為止問應該怎樣安排,才能使每次投入大海的都是異。共74 第26用鏈表的方法 問題進行編算法分析與設首先定義鏈表數(shù)據(jù)結structnode{intno;structnode*期望建立的原始鏈表形 表 數(shù)據(jù)結
數(shù)據(jù)結 數(shù)據(jù)結 數(shù)據(jù)結共74 第27main(
{inti,k;structnode*head,*p,head=(structnode*)malloc(sizeof(structnode)); =-1;head->next=-x- 表 for(i=30;i>0;i-- p=(structnode*)malloc(sizeof(structp- =p-12p-12}
表 數(shù)據(jù)結點數(shù)據(jù)結 數(shù)據(jù)結點數(shù)據(jù)結共74 第28pp-12 表 數(shù)據(jù)結點數(shù)據(jù)結 數(shù)據(jù)結 數(shù)據(jù)結while(p->next!=head)p=p->next;
跳過pp-12 表 數(shù)據(jù)結點數(shù)據(jù)結 數(shù)據(jù)結 數(shù)據(jù)結p12p->nextheadp12-- 表 數(shù)據(jù)結點數(shù)據(jù)結 數(shù)據(jù)結點數(shù)據(jù)結共74 第29p- -fork=1k<9k++)數(shù)9p=p-q=p-p->next=q->next;printf("%3d",q->no);}
q點q表數(shù)據(jù)結點數(shù)據(jù)結數(shù)據(jù)結15人出數(shù)據(jù)結for(i=0;i<15;i++{共74 第30main(
例{inti,k;structnode*head,*p,head=(structnode*)malloc(sizeof(structhead- =-head->next=for(i=30i>0i /*生成循環(huán)鏈表 p=(structnode*)malloc(sizeof(struct}printf("\nTheoriginalwhile(p->next!=head}printf("\nTheoriginalwhile(p->next!=head循環(huán)鏈跳過表頭結p=p-p->next=head-/*pfor(i=0;i<15;i++ for(k=1;k<9;k++p=p-q=p-p->next=q->next;printf(“%3d”,q->no);
/*p的下一個結點是要出/*循環(huán)鏈表跳過要出列的結點/*輸出q結點 /*q} 共74 第31lis(k為)a描述算法的基本設計思描述算法的詳細實現(xiàn)步 語言描述算法(使用C或C++或Java語言實共74 第32算法的基本設計思點的“距離”(包含的結點數(shù))kp指向最后一個結點時,q指向的就是倒數(shù)k個結共74 第33算法的詳細實現(xiàn)步假設表頭指針為list,定義兩個指針plist->link,指向鏈表第1個數(shù)據(jù)結p非空,則執(zhí)行否則轉;否q指向下一個結點count等于k,則查找成功,輸出該結共74 第34intSearchRevk(pLinkListlist,intk{pLinkListp,q;intcount=0;離計數(shù)器pqlist->link;pq指向第一個數(shù)據(jù)結點while(p!=NULL){ifcount<k) 數(shù) q=q->p=p->}
q向下一個p向下一個if(count==k return1;}elsereturn}共74 第35用結點的單鏈表保存單詞,當兩個單詞有相同的后綴時,可共享相同的后綴空間。例如,“l(fā)oading”和“being”的如下。str1str2分別指向兩個單詞的頭結鏈表共同后綴的起始位置(圖中結點p)。共74 第36算法的基本設計思指向str1和str2的頭結點,若m>=n,則p指向鏈表中的第m–n+1個結點;若m<n,則使q指向鏈表中的第nm1個結點,即指針p和q所指的結點到表尾的長度相③反復將指針p和q同步向后移動,并判斷它,則該點即為所求的共同后綴的共74 第37typedefstruct charstructNode*}intlistlenSNODE*head intwhile(head->next!=NULL{lenhead=head-}return}共74 第38SNODE*findlist(SNODE*str1,SNODE*str2{intm,n;SNODE*p,*q;mlistl
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年市場營銷策劃執(zhí)行規(guī)范
- 神木化工管理流程
- 物業(yè)管理投訴處理流程與規(guī)范
- 單位安全責任制度
- 超市商品質量及售后服務制度
- 采購物資供應商評價與淘汰制度
- 辦公室員工出差安全管理制度
- 2026年鄒平城投集團招聘備考題庫含答案詳解
- 關于2025年下半年沐川縣中等職業(yè)學校公開考核招聘急需緊缺專業(yè)技術人員的備考題庫及一套完整答案詳解
- 養(yǎng)老院安全管理制度
- 2026年藥店培訓計劃試題及答案
- 2026春招:中國煙草真題及答案
- 2026河南省氣象部門招聘應屆高校畢業(yè)生14人(第2號)參考題庫附答案
- 2025江蘇無錫市宜興市部分機關事業(yè)單位招聘編外人員40人(A類)備考筆試試題及答案解析
- 卵巢過度刺激征課件
- 漢服行業(yè)市場壁壘分析報告
- 2026華潤燃氣校園招聘(公共基礎知識)綜合能力測試題附答案解析
- 臨床試驗風險管理計劃(RMP)編制規(guī)范
- 2025年項目總監(jiān)年底工作總結及2026年度工作計劃
- 農(nóng)業(yè)科技園區(qū)建設與運營方案
- 招投標業(yè)務流程及合同管理指南
評論
0/150
提交評論