freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

西文圖書(shū)管理系統(tǒng)-預(yù)覽頁(yè)

 

【正文】 輸入書(shū)號(hào)) scanf(書(shū)號(hào)) if SearchBTree(書(shū)號(hào))=trueprintf(書(shū)的具體信息:書(shū)號(hào),書(shū)名,作者,現(xiàn)存量,總量) printf(輸入 1 刪除這本書(shū)) scanf() if(1) { 書(shū)號(hào)=0 printf(刪除成功!) } else printf(操作失敗!不存在這本書(shū))return216。i++) if(總量!=0) printf(書(shū)號(hào), 書(shū)名, 作者, 現(xiàn)存量, 總量)3.調(diào)試分析(1)本程序最大的問(wèn)題就是B樹(shù)的基本算法的實(shí)現(xiàn),此處難點(diǎn)在于B_樹(shù)的結(jié)點(diǎn)的分裂,當(dāng)插入結(jié)點(diǎn)時(shí),判斷結(jié)點(diǎn)中關(guān)鍵字的個(gè)數(shù)是否大于規(guī)定的個(gè)數(shù),如果大于則要對(duì)此結(jié)點(diǎn)進(jìn)行分裂,在分裂時(shí),要改變孩子結(jié)點(diǎn)的parent指針,并且把分裂出的關(guān)鍵字放到該關(guān)鍵字的parent結(jié)點(diǎn)中,然后繼續(xù)判斷是否要分裂,一直到符合要求。(2)算法的時(shí)間空間復(fù)雜度分析 由于B樹(shù)查找的時(shí)間復(fù)雜度為O(Log2N),而程序中多次用到了一重循環(huán),其時(shí)間復(fù)雜度為O(n),因此程序的時(shí)間復(fù)雜度為O(n),空間復(fù)雜度也為O(n).(3)可改進(jìn)內(nèi)容:利用MFC做一個(gè)界面,使界面更加美觀;可嘗試用B+樹(shù)代替B_樹(shù),更容易應(yīng)用于文件系統(tǒng)刪除圖書(shū)記錄的時(shí)候必須先收回所有的書(shū),即要保證現(xiàn)存量和總量相等后方可刪除;采用文件的形式,可以保存圖書(shū)狀態(tài)。 char name[30]。}。 /*雙親結(jié)點(diǎn)指針*/ struct node *ptr[MAXM]。 /*指向找到的結(jié)點(diǎn)*/ int i。 /*m階B樹(shù),為全局變量*/int Max。 for(i=0。i++) 。若查找成功{ //則tag=1,指針pt所指結(jié)點(diǎn)中第i個(gè)關(guān)鍵字等于k;否則tag=0,等于k的 //關(guān)鍵字應(yīng)插入在指針Pt所指結(jié)點(diǎn)中第i和第i+1個(gè)關(guān)鍵字之間BTNode *p=t,*q=NULL。amp。 pkey[i]==k) /*找到待查關(guān)鍵字*/ found=1。//關(guān)鍵字序號(hào)iif (found==1) /*查找成功*/{ =p。//pt指向q,tag置為0}return r。for(j=qkeynum。}qkey[i+1]=x。}void Split(BTNode *amp。 /*生成新結(jié)點(diǎn)*ap*/apptr[0]=qptr[s]。 apptr[is]=qptr[i]。 for (i=0。 /*q的前一半保留,修改keynum*/}void NewRoot(BTNode *amp。tptr[1]=ap。tparent=NULL。若引起 結(jié)點(diǎn)過(guò)大,則沿雙親鏈進(jìn)行必要的結(jié)點(diǎn)分裂調(diào)整,使t仍是m階t樹(shù)。if (q==NULL) /*t是空樹(shù)(參數(shù)q初值為NULL)*/ NewRoot(t,NULL,k,NULL)。 while (needNewRoot==0 amp。 /*無(wú)須分裂,插入完成*/ else { /*分裂結(jié)點(diǎn)*q,將qkey[s+1..m],qptr[s..m]和qrecptr[s+1..m]移入新結(jié)點(diǎn)*ap*/ s=(m+1)/2。 i=Search(q, x)。for (j=i+1。}pkeynum。q=qptr[0])。for (c=tkeynum。}tptr[1]=tptr[0]。 /*將左兄弟中最后一個(gè)關(guān)鍵字移動(dòng)到雙親結(jié)點(diǎn)中*/pkey[i]=tkey[tkeynum]。BTNode *t。tptr[tkeynum]=pptr[i]ptr[0]。tkeynum。 tptr[c]=tptr[c+1]。lkeynum++。c=qkeynum。}for (c=i。}pkeynum。else if (i==pkeynum) /*為最右邊關(guān)鍵字的情況*/ if (pptr[i1]keynumMin) MoveRight(p,i)。else Combine(p,i)。}else /*在*p結(jié)點(diǎn)中查找*/{ i=pkeynum。 return(k==pkey[i])。else{ if ((found=SearchNode(k,p,i))==1) /*查找關(guān)鍵字k*/ { if (pptr[i1]!=NULL) /*若為非葉子結(jié)點(diǎn)*/ { Successor(p,i)。 /*沿孩子結(jié)點(diǎn)遞歸查找并刪除關(guān)鍵字k*/ if (pptr[i]!=NULL) if (pptr[i]keynumMin) /*刪除后關(guān)鍵字個(gè)數(shù)小于MIN*/ Restore(p,i)。else if (rootkeynum==0){ p=root。void addbook()//添加書(shū){ int n=1,num。 s=SearchBTree(bookp,num)。 scanf(%s,amp。book[num].author)。 printf(\n總量:)。 printf(\n輸入 1 繼續(xù)添加, 0 返回主界面)。 if(booknumber==1) { printf(請(qǐng)輸入書(shū)號(hào):)。 book[num].extant。 } return。num)。 } else printf(此書(shū)不存在.)。 if(select) lendbook(num)。 printf(請(qǐng)輸入書(shū)號(hào):)。amp。 return。 scanf(%d,amp。 scanf(%d,amp。 printf(刪除成功!)。i1000。 printf(\t3 借閱圖書(shū)\n)。 switch(getch()) { case 39。 case 39。 case 39。 case 39。 case 39。 case 39。 case 39。 m=4。j1000。book[j].number!=1) InsertBTree(bookp,book[j].number
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1