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

正文內(nèi)容

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計實驗報告doc范文大全(編輯修改稿)

2024-11-08 00:53 本頁面
 

【文章內(nèi)容簡介】 操作。對線性表表示的集合,集合數(shù)據(jù)由用戶從鍵盤輸入(數(shù)據(jù)類型為整型),建立相應(yīng)的順序表,且使得數(shù)據(jù)按從小到大的順序存放,將兩個集合的并的結(jié)果存儲在一個新的線性表集合中,并輸出?!緦嶒瀮?nèi)容】根據(jù)教材定義的順序表機構(gòu),用 C 語言實現(xiàn)順序表結(jié)構(gòu)的創(chuàng)建、插入、刪除、查找等操作;利用上述順序表操作實現(xiàn)如下程序:建立兩個順序表表示的集合(集合中無重復的元素),并求這樣的兩個集合的并?!緦嶒灲Y(jié)果】[實驗數(shù)據(jù)、結(jié)果、遇到的問題及解決]一. Status InsertOrderList(SqList amp。va,ElemType x){}二. Status DeleteK(SqList amp。a,int i,int k){//在非遞減的順序表va中插入元素x并使其仍成為順序表的算法 int i。if(==)return(OVERFLOW)。for(i=。i0,x}//注意i的編號從0開始 int j。if(||)return INFEASIBLE。for(j=0。j三.// 將合并逆置后的結(jié)果放在C表中,并刪除B表Status ListMergeOppose_L(LinkList amp。A,LinkList amp。B,LinkList amp。C){LinkList pa,pb,qa,qb。pa=A。pb=B。qa=pa。qb=pb。// 保存pa的前驅(qū)指針 // 保存pb的前驅(qū)指針 pa=panext。pb=pbnext。Anext=NULL。C=A。while(paamp。amp。pb){} while(pa){} qa=pa。pa=panext。qanext=Anext。Anext=qa。if(padatadata){} else{} qb=pb。pb=pbnext。qbnext=Anext。//將當前最小結(jié)點插入A表表頭 Anext=qb。qa=pa。pa=panext。qanext=Anext。//將當前最小結(jié)點插入A表表頭 Anext=qa。}} pb=B。free(pb)。return OK。qb=pb。pb=pbnext。qbnext=Anext。Anext=qb。順序表就是把線性表的元素存儲在數(shù)組中,元素之間的關(guān)系直接通過相鄰元素的位置來表達。優(yōu)點:簡單,數(shù)據(jù)元素的提取速度快;缺點:(1)靜態(tài)存儲,無法預知問題規(guī)模的大小,可能空間不足,或浪費存儲空間;(2)插入元素和刪除元素時間復雜度高——O(n)求兩個集合的并集該算法是求兩個集合s1和s2的并集,并將結(jié)果存入s引用參數(shù)所表示的集合中帶回。首先把s1集合復制到s中,然后把s2中的每個元素依次插入到集合s中,當然重復的元素不應(yīng)該被插入,最后在s中就得到了s1和s2的并集,也就是在s所對應(yīng)的實際參數(shù)集合中得到并集。第四篇:數(shù)據(jù)結(jié)構(gòu)實驗報告數(shù)據(jù)結(jié)構(gòu)實驗報告一. 題目要求1)編程實現(xiàn)二叉排序樹,包括生成、插入,刪除; 2)對二叉排序樹進行先根、中根、和后根非遞歸遍歷;3)每次對樹的修改操作和遍歷操作的顯示結(jié)果都需要在屏幕上用樹的形狀表示出來。4)分別用二叉排序樹和數(shù)組去存儲一個班(50人以上)的成員信息(至少包括學號、姓名、成績3項),對比查找效率,并說明在什么情況下二叉排序樹效率高,為什么? 二. 解決方案對于前三個題目要求,我們用一個程序?qū)崿F(xiàn)代碼如下 include include include include “”//棧的頭文件,沒有用上typedefintElemType。//數(shù)據(jù)類型 typedefint Status。//返回值類型 //定義二叉樹結(jié)構(gòu) typedefstructBiTNode{ ElemTypedata。structBiTNode *lChild, *rChild。//左右子樹域 }BiTNode, *BiTree。intInsertBST(BiTreeamp。T,int key){//插入二叉樹函數(shù)if(T==NULL){T =(BiTree)malloc(sizeof(BiTNode))。Tdata=key。TlChild=TrChild=NULL。return 1。} else if(keydata){ InsertBST(TlChild,key)。} else if(keyTdata){InsertBST(TrChild,key)。} elsereturn 0。} BiTreeCreateBST(int a[],int n){//創(chuàng)建二叉樹函數(shù) BiTreebst=NULL。inti=0。while(i//數(shù)據(jù)域InsertBST(bst,a[i])。i++。} returnbst。} int Delete(BiTreeamp。T){BiTreeq,s。} if(!(T)rChild){ //右子樹為空重接它的左子樹q=T。T=(T)lChild。free(q)。}else{if(!(T)lChild){ //若左子樹空則重新接它的右子樹q=T。T=(T)rChild。}else{ q=T。s=(T)lChild。while(srChild){q=s。s=srChild。}(T)data=sdata。//s指向被刪除結(jié)點的前驅(qū)if(q!=T)qrChild=slChild。elseqlChild=slChild。free(s)。} } return 1。//刪除函數(shù),在T中刪除key元素 intDeleteBST(BiTreeamp。T,int key){ if(!T)return 0。else{if(key==(T)data)return Delete(T)。else{if(keydata)returnDeleteBST(TlChild,key)。elsereturnDeleteBST(TrChild,key)。} } } intPosttreeDepth(BiTree T){//求深度inthr,hl,max。if(!T==NULL){ hl=PosttreeDepth(TlChild)。hr=PosttreeDepth(TrChild)。max=hlhr?hl:hr。return max+1。} elsereturn 0。} void printtree(BiTreeT,intnlayer){//打印二叉樹 if(T==NULL)return。printtree(TrChild,nlayer+1)。for(inti=0。i”)。} printf(“%dn”,Tdata)。printtree(TlChild,nlayer+1)。} void PreOrderNoRec(BiTree root)//先序非遞歸遍歷 { BiTree p=root。BiTreestack[50]。intnum=0。while(NULL!=p||num0){while(NULL!=p){printf(“%d ”,pdata)。stack[num++]=p。p=plChild。}num。p=stack[num]。p=prChild。} printf(“n”)。} voi
點擊復制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1