2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  《數(shù)據(jù)結(jié)構(gòu)》</b></p><p><b>  課程設(shè)計(jì)報(bào)告</b></p><p>  姓 名: </p><p>  學(xué) 號(hào): </p><p>  

2、班 級(jí): </p><p>  設(shè)計(jì)時(shí)間: </p><p>  審閱教師: </p><p><b>  一、設(shè)計(jì)目的</b></p><p>  1、培養(yǎng)學(xué)生運(yùn)用算法

3、與數(shù)據(jù)結(jié)構(gòu)的基本知識(shí)解決實(shí)際編程中的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)和算法設(shè)計(jì)問題。</p><p>  2、培養(yǎng)學(xué)生獨(dú)立設(shè)計(jì)程序與解決問題的能力,培養(yǎng)學(xué)生團(tuán)隊(duì)協(xié)作集成程序模塊及調(diào)試能力。</p><p>  3、培養(yǎng)學(xué)生初步的軟件設(shè)計(jì)及軟件測試的能力。</p><p><b>  二、設(shè)計(jì)任務(wù)及要求</b></p><p><b&g

4、t;  基本要求</b></p><p>  學(xué)生必須仔細(xì)閱讀《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計(jì)指導(dǎo)書,認(rèn)真主動(dòng)完成課設(shè)的要求。有問題及時(shí)主動(dòng)通過各種方式與教師聯(lián)系溝通。</p><p>  學(xué)生要發(fā)揮自主學(xué)習(xí)的能力,充分利用時(shí)間,安排好課設(shè)的時(shí)間計(jì)劃,并在課設(shè)過程中不斷檢測自己的計(jì)劃完成情況,及時(shí)的向教師匯報(bào)。</p><p>  課程設(shè)計(jì)按照教學(xué)要求需要一周時(shí)間完

5、成,一周中每天(按每周5天)至少要上3-4小時(shí)的機(jī)來調(diào)試C語言設(shè)計(jì)的程序,總共至少要上機(jī)調(diào)試程序15小時(shí)。</p><p>  根據(jù)設(shè)計(jì)報(bào)告要求編寫設(shè)計(jì)報(bào)告,主要內(nèi)容包括目的、意義、原理和實(shí)現(xiàn)方法簡介、過程分析及說明、實(shí)驗(yàn)結(jié)果情況說明、結(jié)論。</p><p>  每個(gè)人必須有可運(yùn)行的程序,學(xué)生能對(duì)自己的程序面對(duì)教師提問并能熟練地解釋清楚,學(xué)生回答的問題和程序運(yùn)行的結(jié)果作為評(píng)分的主要衡量標(biāo)準(zhǔn)

6、;(周二下午開始逐一檢查)</p><p>  NO.1航班管理系統(tǒng)</p><p>  ?一、題目內(nèi)容的描述 </p><p><b>  1.航班查詢系統(tǒng)</b></p><p>  飛機(jī)航班信息包括:航班號(hào)、起點(diǎn)站、終點(diǎn)站、起飛時(shí)間、到達(dá)時(shí)間、機(jī)型以及票價(jià),實(shí)例如下:</p><

7、p>  設(shè)計(jì)航班查詢系統(tǒng)要求能對(duì)飛機(jī)航班信息進(jìn)行增加、刪除、排序和查找。可按航班的航班號(hào)、起點(diǎn)站、終點(diǎn)站、起飛時(shí)間以及到達(dá)時(shí)間進(jìn)行查詢。</p><p>  ?二、應(yīng)用程序功能的詳細(xì)說明 </p><p>  通過建立一個(gè)鏈表來實(shí)現(xiàn)航班信息儲(chǔ)存功能,每個(gè)結(jié)點(diǎn)的信息包括航班號(hào)、出發(fā)地、目的地、出發(fā)時(shí)間、到達(dá)時(shí)間、是否經(jīng)停、價(jià)格,并編寫功能函數(shù)使系統(tǒng)具有插入、查詢、刪除、更新、排序的功能

8、。</p><p>  ?三、主要模塊的算法描述 </p><p><b>  菜單選項(xiàng)</b></p><p><b>  菜單選項(xiàng)圖</b></p><p><b>  航班信息的建立</b></p><p><b>  插入信息 <

9、/b></p><p><b>  查詢航班:</b></p><p><b>  ?四、結(jié)束語 </b></p><p>  通過此程序的編寫我熟悉了鏈表的運(yùn)用,鏈表是本學(xué)期學(xué)習(xí)的重點(diǎn),靈活性比棧好,可以通過指針實(shí)現(xiàn)插入刪除等功能,但要注意移動(dòng)指針的邏輯關(guān)系,如果不注意很容易指向了不是你要的地方。</p>

10、;<p>  ?五、程序的源代碼清單 </p><p>  #include "stdio.h"</p><p>  #include "stdlib.h"</p><p>  #include "ctype.h"</p><p>  #include "pr

11、ocess.h"</p><p>  #include "string.h" </p><p>  #include<iostream></p><p>  using namespace std;</p><p>  struct flight //定義航班信息結(jié)構(gòu)體 </p><

12、;p><b>  {</b></p><p>  char flight_num[10];</p><p>  char flight_start[20];</p><p>  char flight_destination[20];</p><p>  char flight_takeoff_time[10];&

13、lt;/p><p>  char flight_arrive_time[10];</p><p>  char flight_isStop[5];</p><p>  int flight_price;</p><p>  struct flight *next;</p><p><b>  };</b&g

14、t;</p><p>  void welcome()//顯示程序菜單 </p><p><b>  {</b></p><p>  printf("************************歡迎使用航班管理系統(tǒng)**********************\n");</p><p>  prin

15、tf("******************************************************************\n");</p><p>  printf("******************************************************************\n");</p><p>  

16、printf("**********************按下對(duì)應(yīng)數(shù)字實(shí)現(xiàn)相應(yīng)功能********************\n");</p><p>  printf("**************************1.創(chuàng)建航班信息**************************\n");</p><p>  printf("*

17、*************************2.增加航班信息**************************\n");</p><p>  printf("**************************3.查詢航班信息**************************\n");</p><p>  printf("*********

18、*****************4.刪除航班信息**************************\n");</p><p>  printf("**************************0.退出管理系統(tǒng)**************************\n");</p><p>  printf("*****************

19、*************************************************\n");</p><p>  printf("******************************************************************\n");</p><p>  printf("*************

20、***********CopyRight By KobeLee**********************\n");</p><p>  printf("******************************************************************\n");</p><p><b>  }</b>&l

21、t;/p><p>  struct flight * InitSystem(int n)//建立航班信息鏈表 </p><p><b>  {</b></p><p><b>  int i;</b></p><p>  struct flight * head,* p,*s;</p>&

22、lt;p>  for(i=1;i<=n;i++)</p><p><b>  {</b></p><p>  printf("請(qǐng)輸入第%d次航班信息:\n",i);</p><p><b>  if(i==1)</b></p><p><b>  {<

23、/b></p><p>  p=(struct flight *)malloc(sizeof(struct flight));</p><p>  printf("航班號(hào):");</p><p>  scanf("%s",&p->flight_num);</p><p>  prin

24、tf("出發(fā)地:");</p><p>  scanf("%s",&p->flight_start);</p><p>  printf("目的地:");</p><p>  scanf("%s",&p->flight_destination);</p&

25、gt;<p>  printf("起飛時(shí)間:");</p><p>  scanf("%s",&p->flight_takeoff_time);</p><p>  printf("到達(dá)時(shí)間:");</p><p>  scanf("%s",&p-&g

26、t;flight_arrive_time);</p><p>  printf("經(jīng)停:");</p><p>  scanf("%s",&p->flight_isStop);</p><p>  printf("價(jià)格:");</p><p>  scanf("

27、;%d",&p->flight_price);</p><p>  head->next=p;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p>&l

28、t;p>  s=(struct flight * )malloc(sizeof(struct flight));</p><p>  printf("航班號(hào):");</p><p>  scanf("%s",&s->flight_num);</p><p>  printf("出發(fā)地:"

29、);</p><p>  scanf("%s",&s->flight_start);</p><p>  printf("目的地:");</p><p>  scanf("%s",&s->flight_destination);</p><p>  pri

30、ntf("起飛時(shí)間:");</p><p>  scanf("%s",&s->flight_takeoff_time);</p><p>  printf("到達(dá)時(shí)間:");</p><p>  scanf("%s",&s->flight_arrive_tim

31、e);</p><p>  printf("經(jīng)停:");</p><p>  scanf("%s",&s->flight_isStop);</p><p>  printf("價(jià)格:");</p><p>  scanf("%d",&s-&g

32、t;flight_price);</p><p>  s->next=head->next;</p><p>  head->next=s;</p><p><b>  }</b></p><p>  printf("\n"); </p><p><b&

33、gt;  }</b></p><p>  return head;</p><p><b>  }</b></p><p>  int Insert(struct flight *head)//添加航班信息,頭插法;</p><p><b>  {</b></p><

34、p>  struct flight * p,*pi;</p><p>  pi=(struct flight *)malloc(sizeof(struct flight));//為新添加的航班開辟空間 </p><p><b>  p=head;</b></p><p>  printf("請(qǐng)輸入新添加的航班信息:\n\n&qu

35、ot;);</p><p>  printf("航班號(hào):"); </p><p>  scanf("%s",&pi->flight_num);</p><p>  printf("出發(fā)地:");</p><p>  scanf("%s",&p

36、i->flight_start);</p><p>  printf("目的地:");</p><p>  scanf("%s",&pi->flight_destination);</p><p>  printf("起飛時(shí)間:");</p><p>  scan

37、f("%s",&pi->flight_takeoff_time);</p><p>  printf("到達(dá)時(shí)間:");</p><p>  scanf("%s",&pi->flight_arrive_time);</p><p>  printf("經(jīng)停:"

38、);</p><p>  scanf("%s",&pi->flight_isStop);</p><p>  printf("價(jià)格:");</p><p>  scanf("%d",&pi->flight_price);</p><p>  if(head

39、==NULL)</p><p><b>  {</b></p><p>  head->next=pi;</p><p>  pi->next=NULL;</p><p><b>  }</b></p><p><b>  else</b>&

40、lt;/p><p><b>  {</b></p><p>  pi->next=p->next;</p><p>  p->next=pi;</p><p><b>  }</b></p><p><b>  return 0;</b>&

41、lt;/p><p><b>  } </b></p><p>  void SearchByFlightNum(flight * head)</p><p><b>  {</b></p><p>  char num[10];</p><p>  printf("請(qǐng)輸

42、入航班號(hào):");</p><p>  scanf("%s",&num);</p><p>  if(head->next==NULL)</p><p><b>  {</b></p><p>  printf("沒有航班信息,不能查詢,請(qǐng)先創(chuàng)建信息。");&

43、lt;/p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  { </b></p><p>  int count=0;&l

44、t;/p><p>  while(head->next!=NULL)</p><p><b>  { </b></p><p>  head=head->next;</p><p>  if(strcmp(num,head->flight_num)==0)</p><p><

45、;b>  {</b></p><p>  printf("航班號(hào) 出發(fā)地 目的地 起飛時(shí)間 到達(dá)時(shí)間 是否經(jīng)停 價(jià)格 \n");</p><p>  printf("%-8s%-10s%-10s%-10s%-10s%-12s%d \n",head->flight_num,head->flight_s

46、tart,head->flight_destination,head->flight_takeoff_time,head->flight_arrive_time,head->flight_isStop,head->flight_price);</p><p><b>  count++;</b></p><p><b>  }&

47、lt;/b></p><p><b>  }</b></p><p>  if(count==0)printf("沒有找到所需航班,請(qǐng)重新查詢。");</p><p><b>  return;</b></p><p><b>  }</b></

48、p><p><b>  }</b></p><p>  void SearchByFlightStart(flight * head)</p><p><b>  {</b></p><p>  char start[10];</p><p>  printf("請(qǐng)輸入

49、出發(fā)地:");</p><p>  scanf("%s",&start);</p><p>  if(head->next==NULL)</p><p><b>  {</b></p><p>  printf("沒有航班信息,不能查詢,請(qǐng)先創(chuàng)建信息。\n\n&quo

50、t;);</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  { </b></p><p>  int count

51、=0;</p><p>  while(head->next!=NULL)</p><p><b>  { </b></p><p>  head=head->next;</p><p>  if(strcmp(start,head->flight_start)==0)</p><

52、;p><b>  {</b></p><p>  printf("航班號(hào) 出發(fā)地 目的地 起飛時(shí)間 到達(dá)時(shí)間 是否經(jīng)停 價(jià)格 \n");</p><p>  printf("%-8s%-10s%-10s%-10s%-10s%-12s%d \n",head->flight_num,head->

53、;flight_start,head->flight_destination,head->flight_takeoff_time,head->flight_arrive_time,head->flight_isStop,head->flight_price);</p><p><b>  count ++;</b></p><p><

54、;b>  }</b></p><p><b>  }</b></p><p>  if(count==0) printf("沒有找到所需航班,請(qǐng)重新查詢。");</p><p><b>  return;</b></p><p><b>  }<

55、/b></p><p><b>  }</b></p><p>  void SearchByFlightDestination(flight * head)</p><p><b>  {</b></p><p>  char destination[10];</p><

56、p>  printf("請(qǐng)輸入目的地:");</p><p>  scanf("%s",&destination);</p><p>  if(head->next==NULL)</p><p><b>  {</b></p><p>  printf(&quo

57、t;沒有航班信息,不能查詢,請(qǐng)先創(chuàng)建信息。\n");</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  { </b></

58、p><p>  int count=0;</p><p>  while(head->next!=NULL)</p><p><b>  { </b></p><p>  head=head->next;</p><p>  if(strcmp(destination,head->

59、;flight_destination)==0)</p><p><b>  {</b></p><p>  printf("航班號(hào) 出發(fā)地 目的地 起飛時(shí)間 到達(dá)時(shí)間 是否經(jīng)停 價(jià)格 \n");</p><p>  printf("%-8s%-10s%-10s%-10s%-10s%-12s%

60、d \n",head->flight_num,head->flight_start,head->flight_destination,head->flight_takeoff_time,head->flight_arrive_time,head->flight_isStop,head->flight_price);</p><p><b>  coun

61、t ++;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(count==0)</p><p>  printf("沒有找到所需航班,請(qǐng)重新查詢。\n\n\n");</p><p&g

62、t;<b>  return;</b></p><p><b>  }</b></p><p><b>  } </b></p><p>  void SearchByFlightPrice(flight * head)</p><p><b>  {</b&g

63、t;</p><p>  int price;</p><p>  printf("請(qǐng)輸入價(jià)格:");</p><p>  scanf("%d",&price);</p><p>  if(head->next==NULL)</p><p><b>  {

64、</b></p><p>  printf("沒有航班信息,不能查詢,請(qǐng)先創(chuàng)建信息。\n\n");</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  else</b></

65、p><p><b>  { </b></p><p>  int count=0;</p><p>  while(head->next!=NULL)</p><p><b>  { </b></p><p>  if(head->flight_price==

66、price)</p><p><b>  {</b></p><p>  printf("航班號(hào) 出發(fā)地 目的地 起飛時(shí)間 到達(dá)時(shí)間 是否經(jīng)停 價(jià)格 \n");</p><p>  printf("%-8s%-10s%-10s%-10s%-10s%-12s%d \n",head-&g

67、t;flight_num,head->flight_start,head->flight_destination,head->flight_takeoff_time,head->flight_arrive_time,head->flight_isStop,head->flight_price);</p><p><b>  count++;</b><

68、/p><p><b>  }</b></p><p>  head=head->next;</p><p><b>  }</b></p><p>  if(count==0) printf("沒有找到符合條件的航班,請(qǐng)重新查詢。\n\n\n");</p><

69、;p><b>  return; </b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void Search(flight * head)</p><p><b>  { </b><

70、/p><p>  if(head->next==NULL)</p><p><b>  {</b></p><p>  printf("沒有可供查詢的航班信息,請(qǐng)先添加信息。");</p><p><b>  return;</b></p><p>&l

71、t;b>  }</b></p><p>  int Search_way;</p><p>  system("cls");</p><p>  printf("*********************選擇查詢方式***********************\n");</p><p&g

72、t;  printf("********************************************************\n");</p><p>  printf("*******************1.按航班號(hào)查詢***********************\n");</p><p>  printf("*****

73、**************2.按出發(fā)地查詢***********************\n");</p><p>  printf("*******************3.按目的地查詢***********************\n");</p><p>  printf("*******************4. 按價(jià)格查詢 *****

74、******************\n");</p><p>  printf("*******************0. 退出查詢*************************\n");</p><p>  printf("********************************************************\n

75、\n\n");</p><p>  scanf("%d",&Search_way);</p><p>  switch(Search_way)</p><p><b>  {</b></p><p><b>  case 1: </b></p>&

76、lt;p><b>  {</b></p><p>  SearchByFlightNum(head);</p><p><b>  break;</b></p><p><b>  } </b></p><p><b>  case 2:</b>&

77、lt;/p><p><b>  {</b></p><p>  SearchByFlightStart(head);</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  case

78、3:</b></p><p><b>  {</b></p><p>  SearchByFlightDestination(head);</p><p><b>  break;</b></p><p><b>  }</b></p><p&g

79、t;<b>  case 4:</b></p><p><b>  {</b></p><p>  SearchByFlightPrice(head);</p><p><b>  break;</b></p><p><b>  }</b></p&

80、gt;<p>  case 0: break;</p><p>  default:break;</p><p><b>  } </b></p><p><b>  return;</b></p><p><b>  }</b></p><p

81、>  struct flight * Delete(flight * head,char num[10])</p><p><b>  {</b></p><p>  struct flight *p,*q;</p><p><b>  p=head;</b></p><p>  if(p-&

82、gt;next==NULL)</p><p><b>  {</b></p><p>  printf("航班信息為空,不能刪除,請(qǐng)先創(chuàng)建航班信息。\n");</p><p>  return head; </p><p><b>  }</b></p><p

83、>  while(((strcmp(p->flight_num,num))!=0)&&p->next!=NULL)</p><p><b>  {</b></p><p><b>  q=p;</b></p><p>  p=p->next;</p><p>

84、<b>  }</b></p><p>  if((strcmp(p->flight_num,num))==0)</p><p><b>  {</b></p><p>  if(p==head)</p><p>  head=p->next;</p><p>&

85、lt;b>  else </b></p><p>  q->next=p->next;</p><p><b>  free(p);</b></p><p>  printf("成功刪除。");</p><p><b>  }</b></p&g

86、t;<p><b>  else</b></p><p>  printf("沒有您要?jiǎng)h除的航班,請(qǐng)確認(rèn)輸入正確。\n");</p><p>  return head; </p><p><b>  }</b></p><p>  void List(struct

87、 flight * head)</p><p><b>  {</b></p><p>  struct flight *p;</p><p>  p=head->next;</p><p>  printf("所有航班信息:\n");</p><p>  printf(

88、"航班號(hào) 出發(fā)地 目的地 起飛時(shí)間 到達(dá)時(shí)間 是否經(jīng)停 價(jià)格 \n");</p><p>  while(p!=NULL)</p><p><b>  {</b></p><p>  printf("%-8s%-10s%-10s%-10s%-10s%-12s%d \n",p->

89、flight_num,p->flight_start,p->flight_destination,p->flight_takeoff_time,p->flight_arrive_time,p->flight_isStop,p->flight_price);</p><p>  p=p->next;</p><p><b>  }</

90、b></p><p><b>  }</b></p><p>  int main()</p><p><b>  { </b></p><p>  char choice;</p><p>  int create_num=0;</p><p&

91、gt;  struct flight * head;</p><p>  int price;</p><p><b>  do</b></p><p><b>  {</b></p><p>  system("cls");</p><p>  welc

92、ome();</p><p>  scanf("%c",&choice);</p><p>  switch(choice)</p><p><b>  {</b></p><p><b>  case '1':</b></p><p&

93、gt;<b>  {</b></p><p>  printf("請(qǐng)輸入需要?jiǎng)?chuàng)建的信息條數(shù):");</p><p>  scanf("%d",&create_num); </p><p>  head=InitSystem(create_num);</p><p>  Li

94、st(head);</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  case '2':</b></p><p><b>  {</b></p><p&

95、gt;  Insert(head);</p><p>  List(head);</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  case '3':</b></p><p&

96、gt;<b>  {</b></p><p>  Search(head);</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  case '4':</b></p>

97、;<p><b>  {</b></p><p>  if(head->next!=NULL)</p><p><b>  {</b></p><p>  char Delete_num[10];</p><p>  List(head);</p><p>

98、;  printf("請(qǐng)輸入要?jiǎng)h除的航班號(hào):\n");</p><p>  scanf("%s",&Delete_num);</p><p>  head=Delete(head,Delete_num);</p><p>  List(head);</p><p><b>  }<

99、;/b></p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("沒有航班信息,不能刪除,請(qǐng)先添加信息。");</p><p><b>  }</b></p><p

100、><b>  break; </b></p><p><b>  }</b></p><p>  default:break;</p><p><b>  }</b></p><p>  system("pause");</p><

101、p>  }while(choice!='0');</p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  NO.2尋找二叉排序樹的公共祖先</p><p>  ?一、題目內(nèi)容的描述 </p><p&

102、gt;  任務(wù):求二叉樹中指定兩個(gè)結(jié)點(diǎn)共同的最近祖先。</p><p>  ?二、應(yīng)用程序功能的詳細(xì)說明 </p><p>  建立一棵二叉排序數(shù),任意輸入其中兩個(gè)結(jié)點(diǎn),找到最近的公共祖先。</p><p>  ?三、輸入數(shù)據(jù)類型、格式和內(nèi)容限制; </p><p>  #include <stdio.h></p>

103、<p>  #include <stdlib.h></p><p>  #define max 50</p><p>  typedef struct tree</p><p><b>  {</b></p><p><b>  int data;</b></p>

104、<p>  struct tree *lchild,*rchild;</p><p><b>  }test;</b></p><p>  ?四、主要模塊的算法描述 </p><p><b>  ?五、結(jié)束語 </b></p><p>  在此過程中,我對(duì)二叉排序數(shù)的生成和結(jié)構(gòu)有了更深的

105、理解。在實(shí)現(xiàn)功能的時(shí)候,失敗了很多次,但是和同學(xué)交流以及借助網(wǎng)絡(luò),最終成功實(shí)現(xiàn)了。</p><p>  ?六、程序的源代碼清單 </p><p>  #include <stdio.h></p><p>  #include <stdlib.h></p><p>  #define max 50</p>

106、<p>  typedef struct tree</p><p><b>  {</b></p><p><b>  int data;</b></p><p>  struct tree *lchild,*rchild,*parent;</p><p><b>  }test

107、;</b></p><p>  tree *root,*p,*q[max];</p><p>  int sum=0;</p><p>  int m=sizeof(test); </p><p>  void insert_data(int x) /*生成二叉排序樹*/</p><p>

108、<b>  { </b></p><p>  tree *p,*q,*s;</p><p>  s=(test*)malloc(m);</p><p>  s->data=x;</p><p>  s->lchild=NULL;</p><p>  s->rchild=NULL;

109、</p><p><b>  if(!root)</b></p><p><b>  {</b></p><p><b>  root=s; </b></p><p><b>  }</b></p><p>  p=root;

110、 </p><p>  while(p) /*如何接入二叉排序樹的適當(dāng)位置*/</p><p><b>  {</b></p><p><b>  q=p;</b></p><p>  if(p->data==x)</p><p

111、><b>  {</b></p><p>  if(p==s) return;</p><p>  printf("data already exist! \n");</p><p><b>  return;</b></p><p><b>  }</b&

112、gt;</p><p>  else if(x<p->data)</p><p>  p=p->lchild; </p><p><b>  else </b></p><p>  p=p->rchild;</p><p><b>  }</b>

113、</p><p>  if(x<q->data)</p><p><b>  {</b></p><p>  q->lchild=s;</p><p><b>  }</b></p><p><b>  else </b></p&

114、gt;<p><b>  {</b></p><p>  q->rchild=s;</p><p><b>  }</b></p><p><b>  }</b></p><p>  tree * findRoot(tree *T,int a,int b)&

115、lt;/p><p><b>  {</b></p><p>  tree *p,*parent;</p><p>  p=parent=T;</p><p>  while(p!=NULL)</p><p><b>  {</b></p><p>  if

116、(a<p->data&&b<p->data)</p><p><b>  {</b></p><p><b>  parent=p;</b></p><p>  p=p->lchild;</p><p><b>  }</b><

117、;/p><p>  else if(a>p->data&&b>p->data)</p><p><b>  {</b></p><p><b>  parent=p;</b></p><p>  p=p->rchild;</p><p&g

118、t;<b>  }</b></p><p>  else if((a<p->data&&b>p->data)||(a>p->data&&b<p->data))</p><p><b>  {</b></p><p><b>  ret

119、urn p;</b></p><p><b>  }</b></p><p>  else if(a==p->data||b==p->data)</p><p><b>  {</b></p><p>  return parent;</p><p>

120、<b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  int main() /*先生成二叉排序樹*/</p><p><b>  {</b></p>

121、<p><b>  int i,x;</b></p><p><b>  i=1; </b></p><p>  root=NULL; /*千萬別忘了賦初值給root!*/</p><p><b>  do</b></p><p><b&g

122、t;  {</b></p><p>  printf("please input data%d:",i);</p><p><b>  i++;</b></p><p>  scanf("%d",&x); /*從鍵盤采集數(shù)據(jù),以-9999表示輸入結(jié)束*/</p

123、><p>  insert_data(x); /*調(diào)用插入數(shù)據(jù)元素的函數(shù)*/</p><p>  }while(x!=-9999); </p><p><b>  int a,b;</b></p><p>  tree * T1,* T2;</p><p>  printf("請(qǐng)輸入

124、要尋找父親的結(jié)點(diǎn):");</p><p>  scanf("%d%d",&a,&b);</p><p>  p=findRoot(root,a,b);</p><p>  printf("\n結(jié)點(diǎn)%d與結(jié)點(diǎn)%d的最近公共祖先是%d\n",a,b,p->data);</p><

125、p>  return 0; </p><p><b>  }</b></p><p>  NO.3字符串的操作</p><p>  ?一、題目內(nèi)容的描述 </p><p>  任務(wù):字符串采用數(shù)組存儲(chǔ),建立兩個(gè)字符串String1和String2.輸出兩個(gè)字符串。</p><p>  

126、將字符串String2的頭n個(gè)字符添加到String1的尾部,輸出結(jié)果。</p><p>  查找String3在串String1中的位置,若String3在String1中不存在,則插入String3在String1中的m位置上。輸出結(jié)果。</p><p>  ?二、應(yīng)用程序功能的詳細(xì)說明 </p><p>  運(yùn)用strcmp和strcnmp函數(shù)實(shí)現(xiàn)對(duì)應(yīng)功能&l

127、t;/p><p>  ?三、輸入數(shù)據(jù)類型、格式和內(nèi)容限制;</p><p>  ?四、主要模塊的算法描述 </p><p><b>  ?五、結(jié)束語 </b></p><p>  用數(shù)組來儲(chǔ)存字符串是一種在C中常用的方法,但難點(diǎn)在于對(duì)其操作。經(jīng)過這次實(shí)驗(yàn),我理解了strcnmp和strcmp函數(shù)的功能并且得以應(yīng)用。</

128、p><p>  ?六、程序的源代碼清單 </p><p>  #include "string.h"</p><p>  #include <stdio.h></p><p>  #include "stdlib.h"</p><p>  #define N 100 &

129、lt;/p><p>  int main()</p><p><b>  {</b></p><p>  char String1[N]="";</p><p>  char String2[N]="";</p><p>  char String3[N]=&q

130、uot;";</p><p>  char *String=NULL;</p><p>  printf("\n請(qǐng)輸入String1的內(nèi)容:");</p><p>  scanf("%s",String1);</p><p>  printf("\n請(qǐng)輸入String2的內(nèi)容:&qu

131、ot;);</p><p>  scanf("%s",&String2);</p><p>  printf("\nString1:%s\nString2:%s\n",String1,String2);</p><p><b>  int n;</b></p><p>  

132、printf("接下來是進(jìn)行字符串拼接,將String2的頭n個(gè)字符拼接到String1的尾部\n");</p><p>  printf("請(qǐng)輸入要拼接String2前面多少個(gè)字符到String1:");</p><p>  scanf("%d",&n); </p><p>  strncat(S

133、tring1,String2,n);</p><p>  printf("\n%s\n",String1);</p><p>  printf("請(qǐng)輸入要在String1中查找的字符串String3:");</p><p>  scanf("%s",String3);</p><p>

134、;  int flag=0;</p><p><b>  int i;</b></p><p>  for( i=0;i<strlen(String1);i++)</p><p><b>  {</b></p><p>  if(String3[0]==String1[i])</p>

135、;<p><b>  {</b></p><p>  String=&String1[i];</p><p>  if(strncmp(String1,String,strlen(String3))==0)</p><p><b>  {</b></p><p><b&g

136、t;  flag=1;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p> 

137、 if(flag==1)</p><p><b>  {</b></p><p>  printf("String3在String1的第 %d 個(gè)",i+1); </p><p><b>  }</b></p><p><b>  else</b></

138、p><p><b>  {</b></p><p>  printf("沒有找到!");</p><p><b>  }</b></p><p><b>  return 0;</b></p><p><b>  }</b

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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)論