數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)論文-基礎(chǔ)軟件設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  課程設(shè)計(jì)(論文)任務(wù)書</p><p>  信息  學(xué)  院  計(jì)算機(jī) 專  業(yè) 2014-- 1 班    </p><p>  一、課程設(shè)計(jì)(論文)題目   基礎(chǔ)軟件設(shè)計(jì)  </p><p>  二、課程設(shè)計(jì)(論文)工作自 2015 年12月28 日起至 2016年 1月 8 日止。&

2、lt;/p><p>  三、課程設(shè)計(jì)(論文) 地點(diǎn): 5-205 </p><p>  四、課程設(shè)計(jì)(論文)內(nèi)容要求:</p><p>  1.本課程設(shè)計(jì)的目的</p><p>  1、 使學(xué)生進(jìn)一步理解和掌握課堂上所學(xué)各種基本抽象數(shù)據(jù)類型的邏輯

3、結(jié)</p><p>  構(gòu)、存儲(chǔ)結(jié)構(gòu)和操作實(shí)現(xiàn)算法,以及它們?cè)诔绦蛑械氖褂梅椒ā?lt;/p><p>  2、了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計(jì)方法,具備初步的獨(dú)立分析和設(shè)計(jì)</p><p>  能力;使學(xué)生掌握使用各種計(jì)算機(jī)資料和有關(guān)參考資料,提高學(xué)生進(jìn)行程序設(shè)</p><p>  計(jì)的基本能力。初步掌握軟件開發(fā)過(guò)程的問(wèn)題分析、系統(tǒng)設(shè)計(jì)、程序編碼、

4、測(cè)</p><p>  試等基本方法和技能;</p><p>  3.提高綜合運(yùn)用所學(xué)的理論知識(shí)和方法獨(dú)立分析和解決問(wèn)題的能力; </p><p>  2.課程設(shè)計(jì)的任務(wù)及要求</p><p><b>  1)基本要求:</b></p><p>  1. 分析題目,查閱相關(guān)資料;<

5、;/p><p>  2. 算法設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì); </p><p>  3. 編寫代碼并調(diào)試;</p><p>  4. 完成課程設(shè)計(jì)報(bào)告。 </p><p><b>  2)創(chuàng)新要求: </b></p><p>  在基本要求達(dá)到后,可進(jìn)行創(chuàng)新設(shè)計(jì)。</p>

6、;<p>  3)課程設(shè)計(jì)論文編寫要求</p><p> ?。?)要按照書稿的規(guī)格打印謄寫論文</p><p> ?。?)論文包括目錄、緒論、正文、小結(jié)、參考文獻(xiàn)、謝辭、附錄等</p><p> ?。?)課程設(shè)計(jì)論文裝訂按學(xué)校的統(tǒng)一要求完成</p><p>  4)答辯與評(píng)分標(biāo)準(zhǔn): </p><p>  

7、(1)完成問(wèn)題的解決方法分析:20分; </p><p> ?。?)算法思想(流程):20分; </p><p> ?。?)數(shù)據(jù)結(jié)構(gòu):20分;</p><p> ?。?)測(cè)試數(shù)據(jù):20分</p><p> ?。?)回答問(wèn)題:20分。</p><p>  5)參考文獻(xiàn): </p><p>  

8、《C程序設(shè)計(jì)》(第二版) 譚浩強(qiáng) 著 清華大學(xué)出版社出版</p><p>  《C++程序設(shè)計(jì)》 譚浩強(qiáng) 著 清華大學(xué)出版社出版</p><p>  《數(shù)據(jù)結(jié)構(gòu)》(C語(yǔ)言版) 嚴(yán)蔚敏、吳偉民 著 清華大學(xué)出版社出版</p><p>  6)課程設(shè)計(jì)進(jìn)度安排</p><p>  內(nèi)容

9、 天數(shù)      地點(diǎn)</p><p>  構(gòu)思及收集資料     圖書館</p><p>  編程與調(diào)試        實(shí)驗(yàn)室</p><p>  撰寫論文        </p><p>  學(xué)生簽名:______________________</p><p>

10、;  2015年 12 月 28 日</p><p>  課程設(shè)計(jì)(論文)評(píng)審意見</p><p> ?。?)完成問(wèn)題分析(20分):優(yōu)( )、良( )、中(?。⒁话悖ā。?、差( ); </p><p> ?。?)算法思想 ?。?0分):優(yōu)( )、良(?。?、中(?。?、一般(?。?、差(?。?</p><p> ?。?)數(shù)據(jù)結(jié)構(gòu)  (20分)

11、:優(yōu)( )、良(?。⒅校ā。⒁话悖ā。⒉睿ā。?;</p><p> ?。?)測(cè)試數(shù)據(jù) (20分):優(yōu)(?。?、良(?。?、中(?。?、一般(?。?、差( );</p><p> ?。?)回答問(wèn)題  (20分):優(yōu)(?。?、良( )、中(?。⒁话悖ā。⒉睿ā。?lt;/p><p> ?。?)格式規(guī)范性及考勤是否降等級(jí):是(√)、否( )</p>&l

12、t;p>  評(píng)閱人: 趙海霞 職稱: 講師 </p><p>  2016年1 月10 日</p><p><b>  目錄</b></p><p>  一、綜合軟件設(shè)計(jì)目的</p><p>  二、綜合軟件設(shè)計(jì)內(nèi)容</p><p>  1、課程設(shè)計(jì)的題目及簡(jiǎn)介</p>

13、;<p><b>  2、設(shè)計(jì)說(shuō)明</b></p><p><b>  3、程序部分清單</b></p><p><b>  三、測(cè)試數(shù)據(jù):</b></p><p>  四、總結(jié)(寫出心得和總結(jié))</p><p><b>  五、參考文獻(xiàn) </b&

14、gt;</p><p><b>  綜合軟件設(shè)計(jì)目的</b></p><p>  1、 使學(xué)生進(jìn)一步理解和掌握課堂上所學(xué)各種基本抽象數(shù)據(jù)類型的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)和操作實(shí)現(xiàn)算法,以及它們?cè)诔绦蛑械氖褂梅椒ā?lt;/p><p>  2、了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計(jì)方法,具備初步的獨(dú)立分析和設(shè)計(jì)能力;使學(xué)生掌握使用各種計(jì)算機(jī)資料和有關(guān)參考資

15、料,提高學(xué)生進(jìn)行程序設(shè)計(jì)的基本能力。初步掌握軟件開發(fā)過(guò)程的問(wèn)題分析、系統(tǒng)設(shè)計(jì)、程序編碼、測(cè)試等基本方法和技能;</p><p>  提高綜合運(yùn)用所學(xué)的理論知識(shí)和方法獨(dú)立分析和解決問(wèn)題的能力;</p><p><b>  綜合軟件設(shè)計(jì)內(nèi)容</b></p><p><b>  1.課程題目及簡(jiǎn)介</b></p>

16、<p><b>  題目:基礎(chǔ)軟件設(shè)計(jì)</b></p><p>  簡(jiǎn)介:使用C語(yǔ)言實(shí)現(xiàn)編碼,實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)各種功能。全面性涉及到所有內(nèi)容,系統(tǒng)的總結(jié)了數(shù)據(jù)結(jié)構(gòu)各個(gè)方面。</p><p><b>  設(shè)計(jì)說(shuō)明:</b></p><p>  此程序采用多菜單分布執(zhí)行的方式,可以簡(jiǎn)潔、方便的控制程序的運(yùn)行。主菜單下含有

17、多個(gè)子菜單對(duì)應(yīng)著不同類型的數(shù)據(jù)結(jié)構(gòu)內(nèi)容。</p><p>  分別是:線性表、棧、串、隊(duì)列、樹與森林、圖、排序和查找。</p><p>  各個(gè)子菜單下的每項(xiàng)功能均與數(shù)據(jù)結(jié)構(gòu)內(nèi)容相關(guān)。線性表菜單涉及到綜述數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)和抽象數(shù)據(jù)類型。其余各子菜單也各自涉及到各種數(shù)據(jù)結(jié)構(gòu)的基本類型及其功能。</p><p><b>  3.核心代碼</b><

18、;/p><p><b>  //頭文件</b></p><p>  #include<stdio.h></p><p>  #include<stdlib.h></p><p>  #include<string.h></p><p>  #include<c

19、onio.h></p><p>  #include<math.h></p><p>  #include<time.h></p><p>  #include <io.h></p><p>  #define OK 1</p><p>  #define ERROR 0<

20、;/p><p>  #define TRUE 1</p><p>  #define FALSE 0</p><p>  #define MaxLength 50</p><p>  typedef int Status;</p><p>  void chuanshun();</p><p>  

21、void xianshun();</p><p>  void zhan();</p><p>  void xianxingbiao();</p><p>  void paixu();</p><p>  //void dui();</p><p>  void sanlie();</p><p

22、>  void chu();</p><p>  void chazhao();</p><p><b>  //棧定義</b></p><p>  typedef int SElemType;</p><p>  typedef struct</p><p><b>  {<

23、;/b></p><p>  SElemType data[MaxLength];</p><p><b>  int top;</b></p><p><b>  }SqStack;</b></p><p>  Status InitStack(SqStack *S);</p>

24、<p>  Status PushStack(SqStack *S,SElemType e);</p><p>  void TraverseStack(SqStack S);</p><p>  Status GetTop(SqStack S,SElemType *e);</p><p>  Status PopStack(SqStack *S,SEl

25、emType *e);</p><p>  Status ClearStack(SqStack *S);</p><p>  typedef struct StackNode</p><p><b>  {</b></p><p>  SElemType data;</p><p>  struc

26、t StackNode *next;</p><p>  }StackNode,*LinkStackPtr;</p><p>  typedef struct</p><p><b>  {</b></p><p>  LinkStackPtr top;</p><p>  int count;&

27、lt;/p><p>  }LinkStack;</p><p>  Status InitStack1(LinkStack *S);</p><p>  Status PushStack1(LinkStack *S,SElemType e);</p><p>  void TraverseStack1(LinkStack S);</p>

28、;<p>  Status PopStack1(LinkStack *S,SElemType *e);</p><p>  Status ClearStack1(LinkStack *S);</p><p>  typedef char SElemTypec;</p><p>  typedef struct</p><p>&

29、lt;b>  {</b></p><p>  char data[50];</p><p><b>  int top;</b></p><p>  }SqStackc;</p><p>  Status InitStackc(SqStackc *S);</p><p>  St

30、atus PushStackc(SqStackc *S,SElemTypec e);</p><p>  void TraverseStackc(SqStackc S);</p><p>  Status ClearStackc(SqStackc *S);</p><p>  Status PopStackc(SqStackc *S,SElemTypec *e);&

31、lt;/p><p>  void shuzhizhuanhuan();</p><p>  void migongwenti();</p><p>  void hangbianji();</p><p>  void biaodashi();</p><p>  void kuohaopipei();</p>

32、<p>  void zhanshun();</p><p>  void zhanlian();</p><p>  void cheng();</p><p><b>  //線性表定義</b></p><p>  typedef int LElemType;</p><p> 

33、 typedef struct</p><p><b>  {</b></p><p>  LElemType data[MaxLength];</p><p>  int Length;</p><p><b>  }SeqList;</b></p><p>  Statu

34、s InitList(SeqList *L);</p><p>  Status ListInsert(SeqList *L,int i,LElemType e);</p><p>  SeqList CreatList(SeqList L);</p><p>  void TraverseList(SeqList *L);</p><p>

35、  Status DeleteList(SeqList *L,int n);</p><p>  Status FindList(SeqList *L,LElemType e);</p><p>  Status AddList(SeqList *L,LElemType e);</p><p>  LElemType FindnumList(SeqList *L,i

36、nt n);</p><p>  Status DestroyList(SeqList *L);</p><p>  typedef struct Node</p><p><b>  {</b></p><p>  LElemType data;</p><p>  struct Node *n

37、ext;</p><p><b>  }Node;</b></p><p>  typedef struct Node *LinkList;</p><p>  Status InitList1(LinkList *L);</p><p>  Status ListLength1(LinkList L);</p&g

38、t;<p>  Status ListInsert1(LinkList *L,int n,LElemType e);</p><p>  void TraverseLint1(LinkList L);</p><p>  //Status ListDelete1(LinkList *L,intListTraverse1 n);</p><p>  St

39、atus ListDelete1(LinkList *L,int i,LElemType *e);</p><p>  Status FindnumList1(LinkList *L,int n,LElemType *e);</p><p>  Status LocateElem1(LinkList *L,LElemType e);</p><p>  Status

40、 CreatListHead1(LinkList *L);</p><p>  Status ClearList1(LinkList *L);</p><p>  Status CreateListTail1(LinkList *L,int n);</p><p>  void xianlian();</p><p>  void shuan

41、glian();</p><p>  void er();</p><p><b>  //串定義</b></p><p>  typedef char String[MaxLength+1];</p><p>  Status CreatStr(String T,char *chars);</p><

42、;p>  void OutputStr(String T);</p><p>  Status LengthStr(String T);</p><p>  Status CompareStr(String S,String T);</p><p>  Status ConcatStr(String T,String S1,String S2);</p&

43、gt;<p>  Status SubString(String sub,String S1,int n,int m);</p><p>  int Index(String S, String T, int pos);</p><p>  Status StrInsert(String S,int pos,String T);</p><p>  S

44、tatus StrDelete(String S,int pos,int len);</p><p>  Status Replace(String S,String T,String V);</p><p>  void chuanshun();</p><p>  void chuanlian();</p><p>  void chua

45、ndui();</p><p>  void chaun();</p><p>  typedef char TElemType;</p><p>  typedef struct SNode</p><p><b>  {</b></p><p>  char data;</p>

46、<p>  struct SNode *next;</p><p><b>  }SNode;</b></p><p>  typedef struct SNode *LString;</p><p>  Status InitStr(LString *T);</p><p>  Status InsertSt

47、r(LString *T,LElemType chars[]);</p><p><b>  //隊(duì)列</b></p><p>  typedef int QElemType;</p><p>  typedef struct</p><p><b>  {</b></p><p

48、>  QElemType data[MaxLength];</p><p>  int front;</p><p><b>  int rear;</b></p><p><b>  }SqQueue;</b></p><p>  Status InitQueue(SqQueue *Q);&

49、lt;/p><p>  Status TraverseQueue(SqQueue Q);</p><p>  Status InsertQueue(SqQueue *Q,QElemType e);</p><p>  Status DeleteQueue(SqQueue *Q,QElemType *e);</p><p>  Status Cle

50、arQueue(SqQueue *Q);</p><p>  Status EmptyQueue(SqQueue Q);</p><p>  int LengthQueue(SqQueue Q);</p><p>  void duishun();</p><p>  void xunhuandui();</p><p&g

51、t;  void duilie();</p><p>  typedef struct QNode</p><p><b>  {</b></p><p>  QElemType data;</p><p>  struct QNode *next;</p><p>  }QNode,*Queue

52、Par;</p><p>  typedef struct</p><p><b>  {</b></p><p>  QueuePar front,rear;</p><p>  }LinkQueue;</p><p>  Status InitQueue1(LinkQueue *Q);<

53、/p><p>  void duilian();</p><p>  void kuaipai();</p><p>  void erchapaixu();</p><p>  void xier();</p><p>  void zhipai();</p><p>  void guibing

54、();</p><p>  void jishu();</p><p>  void xuanze();</p><p>  void shushun();</p><p>  void jian();</p><p>  void jia();</p><p>  void shu();<

55、;/p><p>  Status InitStack(SqStack *S)</p><p><b>  {</b></p><p>  S->top=-1;</p><p>  return OK;</p><p><b>  }</b></p><p

56、>  Status PushStack(SqStack *S,SElemType e)</p><p><b>  {</b></p><p>  if(S->top>=MaxLength-1)</p><p><b>  {</b></p><p>  printf("

57、此棧已滿!\n");</p><p>  return ERROR;</p><p><b>  }</b></p><p><b>  S->top++;</b></p><p>  S->data[S->top]=e;</p><p>  re

58、turn OK;</p><p><b>  }</b></p><p>  void TraverseStack(SqStack S)</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  for

59、(i=0;i<=S.top;i++)</p><p><b>  {</b></p><p>  printf("%d ",S.data[i]);</p><p><b>  }</b></p><p>  printf("\n");</p>

60、<p><b>  }</b></p><p>  Status InitList1(LinkList *L)</p><p><b>  {</b></p><p>  *L=(LinkList)malloc(sizeof(Node));</p><p><b>  if(

61、!(*L))</b></p><p><b>  {</b></p><p>  return ERROR;</p><p><b>  }</b></p><p>  (*L)->next=NULL;</p><p>  return OK;</p&

62、gt;<p><b>  }</b></p><p>  Status ListLength1(LinkList L)</p><p><b>  {</b></p><p><b>  int i=0;</b></p><p>  LinkList p=L-&g

63、t;next;</p><p><b>  while(p)</b></p><p><b>  {</b></p><p><b>  i++;</b></p><p>  p=p->next;</p><p><b>  }</

64、b></p><p><b>  return i;</b></p><p><b>  }</b></p><p>  Status ListInsert1(LinkList *L,int n,LElemType e)</p><p><b>  {</b></p

65、><p><b>  int i;</b></p><p>  LinkList p,s;</p><p><b>  p=*L;</b></p><p><b>  i=1;</b></p><p>  while(p&&i<n)&l

66、t;/p><p><b>  {</b></p><p>  p=p->next;</p><p><b>  i++;</b></p><p><b>  }</b></p><p>  if(!p||i>n)</p><p

67、><b>  {</b></p><p>  printf("該節(jié)點(diǎn)不存在!\n");</p><p><b>  }</b></p><p>  s=(LinkList)malloc(sizeof(Node));</p><p>  s->data=e;</p

68、><p>  s->next=p->next;</p><p>  p->next=s;</p><p>  return OK;</p><p><b>  }</b></p><p>  void ListTraverse1(LinkList L)</p><

69、p><b>  {</b></p><p>  LinkList p=L->next;</p><p><b>  while(p)</b></p><p><b>  {</b></p><p>  printf("%d ",p->dat

70、a);</p><p>  p=p->next;</p><p><b>  }</b></p><p>  printf("\n");</p><p><b>  }</b></p><p>  Status CreatStr(String T,c

71、har *chars)</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  if(strlen(chars)>MaxLength)</p><p>  return ERROR;</p><p><b>

72、;  else</b></p><p><b>  {</b></p><p>  T[0]=strlen(chars);</p><p>  for(i=1;i<=T[0];i++)</p><p>  T[i]=*(chars+i-1);</p><p>  return O

73、K;</p><p><b>  }</b></p><p><b>  }</b></p><p>  void OutputStr(String T)</p><p><b>  {</b></p><p><b>  int i;<

74、/b></p><p>  for(i=1;i<=T[0];i++)</p><p>  printf("%c",T[i]);</p><p>  printf("\n");</p><p><b>  }</b></p><p>  Statu

75、s LengthStr(String S1)</p><p><b>  {</b></p><p>  return S1[0];</p><p><b>  }</b></p><p>  Status CompareStr(String S,String T)</p><p

76、><b>  {</b></p><p><b>  int i;</b></p><p>  for(i=1;i<=S[0]&&i<=T[0];i++)</p><p><b>  {</b></p><p>  if(S[i]!=T[i])

77、</p><p>  return S[i]-T[i];</p><p><b>  }</b></p><p>  return S[0]-T[0];</p><p><b>  }</b></p><p>  Status ConcatStr(String T,Strin

78、g S1,String S2)</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  if(S1[0]+S2[0]<=MaxLength)</p><p><b>  { </b></p><p&

79、gt;  for(i=1;i<=S1[0];i++)</p><p>  T[i]=S1[i];</p><p>  for(i=1;i<=S2[0];i++)</p><p>  T[S1[0]+i]=S2[i];</p><p>  T[0]=S1[0]+S2[0];</p><p>  return

80、OK;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  { </b></p><p>  for(i=1;i<=S1[0];i++)</p><p>  T[i]=S1[i];<

81、;/p><p>  for(i=1;i<=MaxLength-S1[0];i++)</p><p>  T[S1[0]+i]=S2[i];</p><p>  T[0]=MaxLength;</p><p>  return ERROR;</p><p><b>  }</b></p>

82、;<p><b>  }</b></p><p>  Status InitQueue(SqQueue *Q)</p><p><b>  {</b></p><p>  Q->front=0;</p><p>  Q->rear=0;</p><p&g

83、t;  return OK;</p><p><b>  }</b></p><p>  Status TraverseQueue(SqQueue Q)</p><p><b>  {</b></p><p><b>  int i;</b></p><p

84、>  i=Q.front;</p><p>  while((i+Q.front)!=Q.rear)</p><p><b>  {</b></p><p>  printf("%d ",Q.data[i]);</p><p>  i=(i+1)%MaxLength;</p>&l

85、t;p><b>  }</b></p><p>  printf("\n");</p><p>  return OK;</p><p><b>  }</b></p><p>  Status InsertQueue(SqQueue *Q,QElemType e)<

86、/p><p><b>  {</b></p><p>  if ((Q->rear+1)%MaxLength == Q->front)</p><p>  return ERROR;</p><p>  Q->data[Q->rear]=e;</p><p>  retur

87、n OK;</p><p><b>  }</b></p><p>  Status DeleteQueue(SqQueue *Q,QElemType *e)</p><p><b>  {</b></p><p>  if (Q->front == Q->rear)</p>

88、;<p>  return ERROR;</p><p>  *e=Q->data[Q->front];</p><p>  Q->front=(Q->front+1)%MaxLength;</p><p>  return OK;</p><p><b>  }</b></

89、p><p><b>  //二叉排序樹</b></p><p>  typedef struct TNode</p><p><b>  {</b></p><p><b>  int data;</b></p><p>  struct TNode *lc

90、hild;</p><p>  struct TNode *rchild;</p><p>  }TNode,*BSTree;</p><p>  bool searchTree(BSTree T,int e,BSTree parent,BSTree &p)</p><p><b>  {</b></p&g

91、t;<p><b>  if(!T)</b></p><p><b>  {</b></p><p><b>  p=parent;</b></p><p>  return false;</p><p><b>  }</b></p&

92、gt;<p><b>  else</b></p><p><b>  {</b></p><p>  if(e==T->data)</p><p><b>  {</b></p><p><b>  p=T;</b></p>

93、;<p>  return true;</p><p><b>  }</b></p><p>  else if(e<T->data)</p><p>  return searchTree(T->lchild,e,T,p);</p><p><b>  else</b&

94、gt;</p><p>  return searchTree(T->rchild,e,T,p);</p><p><b>  }</b></p><p><b>  }</b></p><p>  bool InsertTree(BSTree &T,int e)</p>

95、<p><b>  {</b></p><p><b>  BSTree p;</b></p><p>  if(!searchTree(T,e,NULL,p))</p><p><b>  {</b></p><p>  BSTree pNew=(BSTree)m

96、alloc(sizeof(TNode));</p><p>  pNew->data=e;</p><p>  pNew->lchild=pNew->rchild=NULL;</p><p><b>  if(!p)</b></p><p><b>  T=pNew;</b><

97、;/p><p>  else if(e<p->data)</p><p>  p->lchild=pNew;</p><p><b>  else</b></p><p>  p->rchild=pNew;</p><p><b>  }</b></

98、p><p><b>  else</b></p><p>  return false;</p><p><b>  }</b></p><p>  void TraverseTree(BSTree T)</p><p><b>  {</b></p&

99、gt;<p><b>  if(T)</b></p><p><b>  {</b></p><p>  if(T->lchild)</p><p>  TraverseTree(T->lchild);</p><p>  printf("%d ",T-

100、>data);</p><p>  if(T->rchild)</p><p>  TraverseTree(T->rchild);</p><p><b>  }</b></p><p><b>  }</b></p><p>  void erchapa

101、ixu()</p><p><b>  {</b></p><p><b>  int n,m;</b></p><p>  BSTree T=NULL;</p><p>  srand(time(0));</p><p>  printf("請(qǐng)輸入要排序的數(shù)字?jǐn)?shù)目

102、:\n");</p><p>  scanf("%d",&n);</p><p>  printf("隨機(jī)生成的數(shù)列為:\n");</p><p>  for(int i=1;i<=n;i++)</p><p><b>  {</b></p>

103、<p>  m=rand()%100;</p><p>  printf("%d ",m);</p><p>  InsertTree(T,m);</p><p><b>  }</b></p><p>  printf("\n");</p><p&g

104、t;  printf("二叉排序的結(jié)果為:\n");</p><p>  TraverseTree(T);</p><p>  printf("\n");</p><p><b>  }</b></p><p><b>  //希爾排序</b></p&g

105、t;<p>  void shell(int a[], int n)</p><p><b>  {</b></p><p>  int i, j, gap,temp,k;</p><p>  for(gap=n/2;gap>0;gap/=2) </p><p>  for(i=0;i<gap;

106、i++) </p><p><b>  {</b></p><p>  for(j=i+gap;j<n;j+=gap) </p><p>  if(a[j]<a[j-gap])</p><p><b>  {</b></p><p>  temp=a

107、[j];</p><p><b>  k=j-gap;</b></p><p>  while(k>=0&&a[k]>temp)</p><p><b>  {</b></p><p>  a[k+gap]=a[k];</p><p><b&

108、gt;  k-=gap;</b></p><p><b>  }</b></p><p>  a[k+gap]=temp;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  

109、}</b></p><p><b>  //</b></p><p>  Status SearchHash(HashTable H,int key,int *addr)</p><p><b>  {</b></p><p>  *addr = Hash(key); </p&g

110、t;<p>  while(H.elem[*addr] != key) </p><p><b>  {</b></p><p>  *addr = (*addr+1) % m; </p><p>  if (H.elem[*addr] == -1 || *addr == Hash(key)) </p><p&

111、gt;  return ERROR; </p><p><b>  }</b></p><p>  return OK;</p><p><b>  }</b></p><p><b>  三、測(cè)試數(shù)據(jù):</b></p><p><b> 

112、 結(jié)果測(cè)試:</b></p><p><b>  頁(yè)面初始化</b></p><p>  各子菜單及其所含程序</p><p><b>  部分功能執(zhí)行情況:</b></p><p><b>  棧的使用:</b></p><p><b

113、>  線性表的使用</b></p><p><b>  串的使用</b></p><p><b>  排序功能演示</b></p><p><b>  樹的實(shí)現(xiàn)結(jié)果</b></p><p><b>  查找</b></p>

114、<p><b>  四:總結(jié)</b></p><p>  從此次課程設(shè)計(jì)中我學(xué)習(xí)到很多,極大的提升了自己編程能力,了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計(jì)方法,學(xué)習(xí)到了初步的獨(dú)立分析和設(shè)計(jì)能力; 初步了解到了軟件開發(fā)過(guò)程的問(wèn)題分析、系統(tǒng)設(shè)計(jì)、程序編碼、測(cè)試等基本方法和技能;更重要的是提高自己綜合運(yùn)用所學(xué)的理論知識(shí)和方法獨(dú)立分析和解決問(wèn)題的能力;此外經(jīng)過(guò)一周的課程設(shè)計(jì)我也接觸到許多課程之外知識(shí)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論