![用棧設(shè)置密碼_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/13/04aaf81d-a2a2-45b5-ba2b-b5d3e060c80a/04aaf81d-a2a2-45b5-ba2b-b5d3e060c80a1.gif)
![用棧設(shè)置密碼_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/13/04aaf81d-a2a2-45b5-ba2b-b5d3e060c80a/04aaf81d-a2a2-45b5-ba2b-b5d3e060c80a2.gif)
![用棧設(shè)置密碼_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/13/04aaf81d-a2a2-45b5-ba2b-b5d3e060c80a/04aaf81d-a2a2-45b5-ba2b-b5d3e060c80a3.gif)
![用棧設(shè)置密碼_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/13/04aaf81d-a2a2-45b5-ba2b-b5d3e060c80a/04aaf81d-a2a2-45b5-ba2b-b5d3e060c80a4.gif)
![用棧設(shè)置密碼_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/13/04aaf81d-a2a2-45b5-ba2b-b5d3e060c80a/04aaf81d-a2a2-45b5-ba2b-b5d3e060c80a5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、用棧設(shè)置密碼C程 序 設(shè) 計(jì)用棧設(shè)置密碼用棧設(shè)計(jì)一個(gè)密碼驗(yàn)證程序。在程序中預(yù)置一個(gè)密碼,之后進(jìn)行密碼驗(yàn)證,密碼驗(yàn)證共有3次機(jī)會。CONTENTS01編程思路分析基礎(chǔ)知識點(diǎn)具體實(shí)現(xiàn)總結(jié)與拓展030204編程思路分析1.編程思路分析預(yù)置一個(gè)原始密碼PASSWORD,并置密碼驗(yàn)證次數(shù)i=0,用變量k記錄密碼PASSWORD的長度,定義棧s用于存儲輸入的密碼若i0, 則不是第一次輸入密碼,棧中已有內(nèi)容,則清空棧輸入猜測密碼,并將該密碼串中的元素依次入棧,次數(shù)i加11.編程思路分析將棧中的元素依次出棧,逐個(gè)與原始密碼比較,判斷是否相同,若有元素不同,則轉(zhuǎn)2,若所有元素均相同,則轉(zhuǎn)3.判斷i是否等于3.若
2、為真,則驗(yàn)證次數(shù)超過三次,退出。否則密碼正確。比較猜測密碼和原始密碼長度是否相等,若長度不等,則轉(zhuǎn)2,若相等則進(jìn)入2.4基礎(chǔ)知識點(diǎn)l 棧: 限制僅在一端進(jìn)行插入和刪除運(yùn)算的線性表?xiàng)m敆m敆5讞5兹霔H霔3鰲3鰲 棧頂:進(jìn)行插入、刪除的一端l 棧底:除棧頂外的另一端.a2a1an棧是后進(jìn)先出表( LIFO ) 棧的概念棧的概念2. 基礎(chǔ)知識點(diǎn)2. 基礎(chǔ)知識點(diǎn) 棧的基本操作棧的基本操作l 置空棧 createEmptyStack(void):空棧;l 判???isEmptytack(st):這是一個(gè)布爾函數(shù)。若st為空棧,則函數(shù)值為“真”, 否則為“假”。l 入棧 push(st,x):在st的
3、頂部插入(亦稱壓入)元素 x。l 出棧 pop(st):刪除(亦稱彈出)棧st的頂部元素。l 取棧頂 top(st):取棧st的頂部元素。2. 基礎(chǔ)知識點(diǎn)棧的兩種實(shí)現(xiàn)方式棧的兩種實(shí)現(xiàn)方式順序棧和鏈棧 順序棧順序棧 鏈棧鏈棧利用一組地址連續(xù)的存儲單元依次存放自棧頂?shù)綏5椎臄?shù)據(jù)元素。棧的鏈?zhǔn)酱鎯Y(jié)構(gòu)稱為鏈棧。由于只能在鏈表頭部進(jìn)行操作,故鏈棧沒有必要像單鏈表那樣需附加頭結(jié)點(diǎn)。棧頂指針top就是鏈表的頭指針head。2. 基礎(chǔ)知識點(diǎn) 順序棧的定義順序棧的定義#define STACK_SIZE 100 /設(shè)定??臻g最多設(shè)定??臻g最多100個(gè)元素個(gè)元素typedef struct /聲明結(jié)構(gòu)體類型聲明
4、結(jié)構(gòu)體類型 char *base; char *top; int stacksize; int length;SeqStack;2. 基礎(chǔ)知識點(diǎn) 棧的初始化棧的初始化void Initial(SeqStack *s) /初始化,構(gòu)造棧初始化,構(gòu)造棧 s - base = (char *)malloc (STACK_SIZE*sizeof(char); if(!s-base) exit(-1); s - top = s - base; s - stacksize = STACK_SIZE; s - length = 0;2. 基礎(chǔ)知識點(diǎn) 入棧操作入棧操作void Push(SeqStack *s
5、,char x) /進(jìn)棧進(jìn)棧 if(IsFull(s) printf(棧上溢棧上溢n); exit(1); *(s- top +) = x ; +s-length;2. 基礎(chǔ)知識點(diǎn) 出棧操作出棧操作char pop(SeqStack *s) /出棧出棧 if(IsEmpty(s) printf(棧為空棧為空n); exit(1); -(s-length); return *-s - top;2. 基礎(chǔ)知識點(diǎn) 取棧頂元素取棧頂元素void GetTop(SeqStack *s,char *e) /取棧頂元素取棧頂元素 if(IsEmpty(s) printf(棧為空棧為空n); exit(1);
6、 *e = *(s-top-1); s-top -;2. 基礎(chǔ)知識點(diǎn) 判斷??张袛鄺?読nt IsEmpty(SeqStack *s) /判空判空 return s - top = s - base;int IsFull(SeqStack *s) /判滿判滿 return s - top - s-base = STACK_SIZE -1; 判斷棧滿判斷棧滿2. 基礎(chǔ)知識點(diǎn) 按出棧順序取棧頂元素按出棧順序取棧頂元素void change(SeqStack *s,char *a) /出棧順序取棧頂元素出棧順序取棧頂元素 int n = s - length - 1; while(!IsEmpty(
7、s) GetTop(s,&an-); 清空棧清空棧void clearstack(SeqStack *s) /清空棧清空棧 s - top = s - base; s - length = 0;具體實(shí)現(xiàn)總結(jié)與拓展棧是一種“后進(jìn)先出”線性表,本例中,用棧存儲輸入的猜測密碼。由于棧的這種“后進(jìn)先出”的特性,為了方便與原始密碼一一比較,故在函數(shù)change()中,棧中元素依次出棧時(shí),將出棧的元素在數(shù)組a中從后往前放置。在對棧的操作中,要特別注意不能出現(xiàn)“上溢”和“下溢”,即棧滿時(shí)不能進(jìn)行入棧操作,??諘r(shí)不能進(jìn)行出棧操作。故本程序中編寫了兩個(gè)函數(shù)IsEmpty()和IsFull()用于判斷棧空和棧滿,在對棧進(jìn)行入棧和出棧之前,可調(diào)用
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合法的金融借款合同
- 出租房租賃合同協(xié)議
- 用于經(jīng)營的房屋租賃合同
- 大數(shù)據(jù)風(fēng)控服務(wù)合同
- 汽車租賃書面合同書
- 聯(lián)保借款標(biāo)準(zhǔn)合同
- 2025小麥購銷合同樣本
- 個(gè)人借款合同合同英文范本
- 提升銷售技巧的培訓(xùn)課程
- 2024年5G通信基礎(chǔ)設(shè)施建設(shè)合同
- 2025年護(hù)士資格考試必考基礎(chǔ)知識復(fù)習(xí)題庫及答案(共250題)
- 2025年人教版PEP二年級英語上冊階段測試試卷
- 煙草業(yè)產(chǎn)業(yè)鏈協(xié)同創(chuàng)新模式-洞察分析
- 經(jīng)濟(jì)學(xué)基礎(chǔ)試題及答案 (二)
- 2024-2030年中國蠔肉市場發(fā)展前景調(diào)研及投資戰(zhàn)略分析報(bào)告
- GB 19053-2024殯儀場所致病菌安全限值
- 寧騷公共政策學(xué)完整版筆記
- 2023年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招(數(shù)學(xué))試題庫含答案解析
- 勇者斗惡龍9(DQ9)全任務(wù)攻略
- 經(jīng)顱磁刺激的基礎(chǔ)知識及臨床應(yīng)用參考教學(xué)課件
- 小學(xué)語文人教四年級上冊第四單元群文閱讀“神話故事之人物形象”PPT
評論
0/150
提交評論