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

正文內(nèi)容

數(shù)據(jù)結(jié)構(gòu)單鏈表課程設(shè)計設(shè)計報告(已修改)

2025-02-02 16:13 本頁面
 

【正文】 《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計報告1) 需求分析此程序主要用來實現(xiàn)單鏈表的創(chuàng)建、插入、刪除、排序、并、交、差運算及輸出等基本操作。程序需要根據(jù)使用者的需要來運算得出符合要求的結(jié)果①在程序運行的過程中根據(jù)提示進行輸入,使用了scanf函數(shù);②使用了printf函數(shù)進行輸出;③程序輸出符合使用者的需要的結(jié)果;④程序能夠輸出任意運算的正確結(jié)果。2) 概要設(shè)計 1. 定義所需的數(shù)據(jù)結(jié)構(gòu) data *next typedef struct LNode{ int data。 //數(shù)據(jù)域 struct LNode *next。 //指針域}LNode, *LinkList。2. 模塊劃分void LinkListCreat(LinkList amp。L,int n)。 //創(chuàng)建void ListInsert(LinkList head,int i,int e)。 //插入 void ListDelete(LinkList head,int i,int e)。 //刪除void printList(LinkList amp。head)。 //輸出void LinkListsort(LinkList amp。L)。 //排序void LinkListMerge(LinkList amp。La, LinkList amp。Lb,LinkList amp。Lc)。 //并void LinkListJiao(LinkList amp。La, LinkList amp。Lb,LinkList amp。Lc)。 //交void LinkListcha(LinkList amp。La, LinkList amp。Lb,LinkList amp。Lc)。 //差void LinkListhebing(LinkList amp。La, LinkList amp。Lb,LinkList amp。Lc)。 //差集的并void main()。 //主函數(shù),分別調(diào)用以上的子函數(shù)3 .功能設(shè)計首先利用元素逆序插入法建立鏈表,然后導(dǎo)出菜單,用switch調(diào)用各個子函數(shù),實現(xiàn)鏈表的創(chuàng)建,插入,刪除,排序,交,并,差等運算,其中排序用的是冒泡法。3) 詳細(xì)設(shè)計//單鏈表的創(chuàng)建void CreatList(Lnode *L) /*建立鏈表CreastList函數(shù)*/{ Lnode *p。 int value。 Lnext=NULL。 while (1) /*當(dāng)輸入非0數(shù)值時*/ {scanf( %d,amp。value)。 if (value==NULL) return。 p=(Lnode *)malloc(sizeof(Lnode))。 /*建立P鏈表*/ pdata=value。 pnext=Lnext。 /*把后輸入的插到前面*/ Lnext=p。 }}//單鏈表的輸出void printList(Lnode *head){ printf(輸出的結(jié)果如下: \n)。 Lnode *p = headnext。//頭結(jié)點賦給P if (p == NULL) { printf(List is empty!\n)。 return。 } while (p != NULL) { printf(%d , pdata)。 p = pnext。 } printf(\n)。}//單鏈表的插入void ListInsert(LinkList head,int i,int e)//在單鏈表中第i個位置之前插入e元素 { LinkList p,s。 int j=0。 p=head。 while(pamp。amp。ji1)//找到要插入的位置 { p = pnext。 ++j。 } if(!p||ji1) { printf(要插入的位置錯誤!)。 } s = (LNode *)malloc(sizeof(LNode))。//給插入的元素開辟空間 sdata = e。//改變指針指向 snext = pnext。 pnext = s。 }//單鏈表的刪除int ListDelete_L(Lnode *L,int i) /*刪除函數(shù)*/{ Lnode *p=Lnext。 int j=0。 Lnode *q。 while (pnext amp。amp。 ji1) {p=pnext。 ++j。} /*找出第i節(jié)點,并令p指向其前趨*/ if (!pnext || ji1) return 0。 q=pnext。 pnext=qnext。 free(q)。 return 1。}//單鏈表的差運算Lnode *c,*a,*t。 c=C=(Lnode *)malloc(sizeof(Lnode))。 a = Anext。 while(a) { p = Bnext。 while(p amp。amp。 adata != pdata) { p = pnext。 } if(!(p amp。amp。 pdata == adata)) { t=(Lnode *)malloc(sizeof(Lnode))。 tdata = adata。 cnext = t。 c = t。 } a=anext。 } cnext = NULL。 printf( \n 進行差運算,結(jié)果為:\n)。 printList(C)。 C=(Lnode *)malloc(sizeof(Lnode))。 /*必須再分配一次地址空間以用來把原鏈表清空,否則每次運行都會使鏈表元素增加*/ break。//單鏈表的交運算Lnode *d。 d=D=(Lnode *)malloc(sizeof(Lnode))。 a = Anext。 while(a) { p = Bnext。 while(p amp。amp。 adata != pdata) { p = pnext。 } if(p amp。amp。 pdata == adata) { t=(Lnode *)malloc(sizeof(Lnode))。 tdata = adata。 dnext = t。 d = t。 } a=anext。 } dnext = NULL。 printf( \n 進行差運算,結(jié)果為:\n)。 printList(D)。 D=(Lnode *)malloc(sizeof(Lnode))。 break。//單鏈表的并運算Lnode *e。 a =Anext。 p = Bnext。 e = E = A。 //用La的頭結(jié)點作為Lc的頭結(jié)點 while(aamp。amp。p) { if(adata = pdata)
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1