<ruby id="zx91x"></ruby><p id="zx91x"></p>
<p id="zx91x"></p>
<pre id="zx91x"><ruby id="zx91x"><mark id="zx91x"></mark></ruby></pre>

<p id="zx91x"><del id="zx91x"></del></p>

        <track id="zx91x"><ruby id="zx91x"></ruby></track>

            <pre id="zx91x"><ruby id="zx91x"></ruby></pre>

            <track id="zx91x"><del id="zx91x"></del></track>

              <big id="zx91x"><ruby id="zx91x"></ruby></big>

                  數據結構實驗報告總結范文五篇

                  時間:2022-10-30 工作計劃 點擊:

                  報告使用范圍很廣。按照上級部署或工作計劃,每完成一項任務,一般都要向上級寫報告,反映工作中的基本情況、工作中取得的經驗教訓、存在的問題以及今后工作設想等,以取得上級領導部門的指導。報告,在已發布的黨、人大、政府、司法、軍隊機關的公文處理規范中, 以下是為大家整理的關于數據結構實驗報告總結5篇 , 供大家參考選擇。

                  數據結構實驗報告總結5篇

                  第一篇: 數據結構實驗報告總結

                  實驗二 棧

                  實驗名稱:棧的順序存儲結構的插入和刪除

                  實驗內容:本程序利用棧的順序存儲結構構造了棧,并實現了棧的插入和刪除功能。

                  程序流程圖:

                  源代碼:

                  #include

                  #include

                  #define TRUE 1

                  #define FALSE 0

                  #define OK 1

                  #define ERROR 0

                  #define INFEASIBLE -1

                  #define OVERFLOW -2

                  #define STACK_INIT_SIZE 100

                  #define STACKINCREMENT 10

                  typedef int SElemType;

                  typedef int Status;

                  typedef struct

                  {

                  SElemType *base;

                  SElemType *top;

                  int stacksize;

                  }SqStack;

                  Status InitStack(SqStack *S)

                  {

                  (*S).base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));

                  if(!(*S).base)exit(OVERFLOW);

                  (*S).top=(*S).base;

                  (*S).stacksize=STACK_INIT_SIZE;

                  return OK;

                  }

                  Status Push(SqStack S,SElemType e)

                  {

                  if(S.top-S.base>=S.stacksize)

                  {

                  S.base=(SElemType *)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(SElemType));

                  if(!S.base)exit(OVERFLOW);

                  S.top=S.base+S.stacksize;

                  S.stacksize+=STACKINCREMENT;

                  }

                  *(S.top+1)=e;

                  return OK;

                  }

                  Status Pop(SqStack S,SElemType *e)

                  {

                  if(S.top==S.base)return ERROR;

                  e=*--S.top;

                  return OK;

                  }

                  void main()

                  {

                  SqStack S;

                  int j;

                  int n,i,count=0;

                  SElemType e;

                  clrscr();

                  InitStack(&S);

                  for(i=0; ;i++)

                  {

                  scanf("%d",&S.base[i]);

                  if(S.base[i]==999) break;

                  S.top=&S.base[i];

                  count++;

                  }

                  for(i=0;i

                  第二篇: 數據結構實驗報告總結

                  華北電力大學

                  實 驗 報 告

                  |

                  |

                  實驗名稱 約瑟夫環

                  課程名稱 算法與數據結構試驗

                  |

                  |

                  專業班級: 學生姓名:

                  學 號: 成 績:

                  指導教師: 實驗日期:

                  一、 實驗名稱:約瑟夫環

                  二、 實驗目的

                  綜合應用所學的知識分析問題、解決問題,學會用單鏈表與循環鏈表解決問題,提高實際編程能力及程序調試能力。

                  三、 實驗要求

                  采用單鏈表或循環鏈表設計約瑟夫環

                  四、 實驗內容

                  約瑟夫環問題是:編號為1,2,…,n的n個人按順時針方向圍坐一圈,每人有一個正整數編號。從某個位置上的人開始報數,數到m的人便出列,下一個人(第m+1個)又從1數起,數到m的人便是第二個出列的人,依次重復下去,直到最后一個人出列。于是得到一個新的次序,試設計程序求出出列順序。輸入數據檢測結果,m=4,n=8。

                  五、 實驗原理

                  用單鏈表(或循環鏈表)存儲數據,利用循環按要求將鏈表中的數據輸出,實現約瑟夫環。

                  六、 實驗結果

                  #include

                  #include

                  #include

                  using namespace std;

                  struct person

                  {

                  int data;

                  person *next;

                  };

                  int main()

                  {

                  int n=0;

                  int m=0;

                  cout>n;

                  cout>m;

                  person *head=new person;

                  person *p=head;

                  for (int i=1;idata=i;

                  else

                  {

                  p->next=new person;

                  p=p->next;

                  p->data=i;

                  }//設置節點;

                  }

                  p->next=head;//連接首尾節點;

                  coutnext=p->next;//刪除節點;

                  cout

                  第三篇: 數據結構實驗報告總結

                  《數據結構與算法分析》

                  課程設計內容體系主要內容

                  《數據結構課程設計》課程,可使學生深化理解書本知識,致力于用學過的理論知識和上機取得的實踐經驗,解決具體、復雜的實際問題,培養軟件工作者所需的動手能力、獨立解決問題的能力。該課程設計側重軟件設計的綜合訓練,包括問題分析、總體結構設計、用戶界面設計、程序設計基本技能和技巧、多人合作,以至一整套軟件工作規范的訓練和科學作風的培養。

                  一、 課程設計要求

                  學生必須仔細閱讀《數據結構與算法分析》課程設計方案,認真主動完成課程設計的要求。有問題及時主動通過各種方式與教師聯系溝通。

                  學生要發揮自主學習的能力,充分利用時間,安排好課程設計的時間計劃,并在課程設計過程中不斷檢測自己的計劃完成情況,及時的向教師匯報。

                  課程設計按照教學要求需要兩周時間完成,兩周中每天(按每周5天)至少要上3-4小時的機來調試C語言設計的程序,總共至少要上機調試程序30小時。

                  二、 數據結構課程設計的具體內容

                  本次課程設計完成如下模塊(共9個模塊,學生可以在其中至少挑選6個功能塊完成,但有**號的模塊是必須要選擇的)

                  (1) 運動會分數統計**

                  任務:參加運動會有n個學校,學校編號為1……n。比賽分成m個男子項目,和w個女子項目。項目編號為男子1……m,女子m+1……m+w。不同的項目取前五名或前三名積分;取前五名的積分分別為:7、5、3、2、1,前三名的積分分別為:5、3、2;哪些取前五名或前三名由學生自己設定。(mnext=q->next;

                  printf("%4d",q->data);

                  if(i%10==0)printf("\n");

                  free(q);

                  }

                  R=p;

                  return R;

                  }

                  /*輸出函數*/

                  void OutRing(int n,LinkList R)

                  {

                  int i;

                  ListNode *p;

                  p=R;

                  for(i=1;inext)

                  {

                  printf("%4d",p->data);

                  if(i%10==0) printf("\n");

                  }

                  printf("\n");

                  printf("猴大王的號碼:\n");

                  printf("4%d",p->next);

                  }

                  /*主函數*/

                  void main()

                  {

                  LinkList R;

                  int n,k;

                  LinkList InitRing(int n,LinkList R );

                  printf("猴子的總數N:");

                  scanf("%d",&n);

                  printf("報到要被淘汰數字 K:");

                  scanf("%d",&k);

                  printf("被淘汰的猴子:\n");

                  R=InitRing(n,R);

                  R=DeleteDeath(n,k,R);

                  printf("\n");

                  OutRing(n,R);

                  }

                  實驗結果:

                  實驗2 訂票系統

                  任務:通過此系統可以實現如下功能:

                  錄入:可以錄入航班情況(數據可以存儲在一個數據文件中,數據結構、具體數據自定)

                  查詢:可以查詢某個航線的情況(如,輸入航班號,查詢起降時間,起飛抵達城市,航班票價,票價折扣,確定航班是否滿倉);可以輸入起飛抵達城市,查詢飛機航班情況;

                  訂票:可以訂票(訂票情況可以存在一個數據文件中,結構自己設定),如果該航班已經無票,可以提供相關可選擇航班;

                  退票:可退票,退票后修改相關數據文件;客戶資料有姓名,證件號,訂票數量及航班情況,訂單要有編號。

                  修改航班信息:當航班信息改變可以修改航班數據文件

                  要求:根據以上功能說明,設計航班信息,訂票信息的存儲結構,設計程序完成功能;

                  實驗內容:

                  源程序:

                  #include

                  #include

                  #include

                  #include

                  #include

                  #include

                  #include

                  #define TRUE 1

                  #define FALSE 0

                  typedef int BOOL;

                  #define NEW(type, size) (type*)malloc(sizeof(type) * size)

                  typedef struct _date { /* 日期 */

                  int m_year;

                  int m_month;

                  int m_day;

                  } DATE;

                  typedef struct _time { /* 時間 */

                  int m_hour;

                  int m_min;

                  } TIME;

                  typedef struct _flight { /* 航班數據 */

                  int m_fltno; /* 航班號,若此成員為-1,則表示此航班未使用 */

                  char m_szFrom[30]; /* 起飛港 */

                  char m_szPass[30]; /* 途經港 */

                  char m_szTo[30]; /* 到達港 */

                  TIME m_start; /* 起飛時間 */

                  TIME m_arrive; /* 到達時間 */

                  TIME m_fly; /* 飛行固定時間 */

                  int m_people; /* 乘客限額 */

                  } FLIGHT, *PFLIGHT;

                  typedef struct _passengernode { /* 乘客數據 */

                  char m_szName[20]; /* 姓名 */

                  char m_szCorp[30]; /* 單位 */

                  char m_szNumber[19]; /* 身份證號,考慮到字母的情況,故使用字符串 */

                  DATE m_Date; /* 訂票日期 */

                  int m_fltno; /* 航班號 */

                  int m_seatno; /* 座位號 */

                  } PASSENGER, *PPASSENGER;

                  typedef struct _psgnode { /* 乘客結點 */

                  PASSENGER m_psg;

                  struct _psgnode *next;

                  } NODE, *PNODE;

                  /* 清空鍵盤緩沖區 */

                  void ClearBuffer(void);

                  /* 讀取航班數據 */

                  void ReadFlight(FLIGHT fltlist[]);

                  /* 讀取乘客數據 */

                  void ReadPassenger(PNODE psglist);

                  /* 添加航班 */

                  BOOL AddFlight(FLIGHT fltlist[], PFLIGHT fltdata);

                  /* 刪除航班 */

                  void DelFlight(FLIGHT fltlist[], int index);

                  /* 添加乘客 */

                  void AddPassenger(PNODE psglist, PPASSENGER psgdata);

                  /* 刪除乘客 */

                  BOOL DelPassenger(PNODE psglist, int index);

                  /* 清空乘客鏈表 */

                  void ClearPsgList(PNODE psglist);

                  /* 取得乘客總數 */

                  unsigned int GetPsgCount(PNODE psglist);

                  BOOL datecmp(DATE* date1, DATE* date2);

                  void Book(FLIGHT fltlist[], PNODE psglist);

                  void query(FLIGHT fltlist[], PNODE psglist);

                  void fltnumber(FLIGHT fltlist[]);

                  void psgname (PNODE psglist);

                  void fromto (FLIGHT fltlist[]);

                  void fltdat(FLIGHT fltlist[], PNODE psglist);

                  /* 保存航班數據 */

                  void SaveFlight(FLIGHT fltlist[]);

                  /* 保存乘客數據 */

                  void SavePassenger(PNODE psglist);

                  /* 退出 */

                  void Quit(FLIGHT fltlist[], PNODE psglist);

                  BOOL datecmp(DATE* date1, DATE* date2)

                  {

                  return (date1->m_year == date2->m_year && date1->m_month == date2->m_month

                  && date1->m_day == date2->m_day);

                  }

                  BOOL timecmp(TIME* time1, TIME* time2)

                  {

                  return (time1->m_hour == time2->m_hour && time1->m_min == time2->m_min);

                  }

                  void ClearBuffer(void)

                  {

                  getchar();

                  }

                  void ReadFlight(FLIGHT fltlist[])

                  {

                  FILE *fp;

                  if ((fp = fopen("", "rb")) != NULL)

                  fread(fltlist, sizeof(FLIGHT), 40, fp);

                  else

                  {

                  int i;

                  for (i = 0; i < 40; i++)

                  fltlist[i].m_fltno = -1;

                  }

                  fclose(fp);

                  }

                  void ReadPassenger(PNODE psglist)

                  {

                  FILE *fp;

                  if ((fp = fopen("", "rb")) == NULL)

                  psglist->next = NULL;

                  else

                  {

                  int i, n;

                  fread(&n, sizeof(int), 1, fp);

                  for (i = 0; i < n; i++)

                  {

                  PASSENGER psg;

                  fread(&psg, sizeof(PASSENGER), 1, fp);

                  AddPassenger(psglist, &psg);

                  }

                  }

                  }

                  BOOL AddFlight(FLIGHT fltlist[], PFLIGHT fltdata)

                  {

                  int i;

                  BOOL bResult = FALSE;

                  for (i = 0; i < 40; i++)

                  {

                  if (fltlist[i].m_fltno == -1)

                  {

                  memcpy(&fltlist[i], fltdata, sizeof(FLIGHT));

                  bResult = TRUE;

                  break;

                  }

                  }

                  return bResult;

                  }

                  void DelFlight(FLIGHT fltlist[], int index)

                  {

                  fltlist[index].m_fltno = -1;

                  }

                  void AddPassenger(PNODE psglist, PPASSENGER psgdata)

                  {

                  PNODE p, q;

                  for (p = psglist; p->next != NULL; p = p->next)

                  ;

                  q = NEW(NODE, 1);

                  memcpy(&q->m_psg, psgdata, sizeof(PASSENGER));

                  q->next = NULL;

                  p->next = q;

                  }

                  BOOL DelPassenger(PNODE psglist, int index)

                  {

                  int i = 0;

                  PNODE p, q;

                  for (p = psglist->next; p->next != NULL; p = p->next)

                  i++;

                  if (p != NULL && i == index - 1)

                  {

                  q = p->next;

                  p->next = q->next;

                  free(q);

                  return TRUE;

                  }

                  else

                  return FALSE;

                  }

                  void ClearPsgList(PNODE psglist)

                  {

                  PNODE p = psglist->next, q;

                  while (p != NULL && p->next != NULL)

                  {

                  q = p;

                  p = p->next;

                  free(q);

                  }

                  }

                  unsigned int GetPsgCount(PNODE psglist)

                  {

                  PNODE p;

                  unsigned int s = 0;

                  for (p = psglist->next; p != NULL; p = p->next)

                  s++;

                  return s;

                  }

                  void Book(FLIGHT fltlist[], PNODE psglist)

                  {

                  char c = "y";

                  BOOL b;

                  while (c == "y" || c == "Y")

                  {

                  int i;

                  PASSENGER psg;

                  printf("請輸入航班號:");

                  scanf("%d", &;

                  while >= 10000 || < 0)

                  {

                  printf("請重新輸入:");

                  scanf("%d", &;

                  }

                  for(i = 0; i < 40; i++)

                  {

                  if(fltlist[i].m_fltno ==

                  {

                  PNODE p;

                  BOOL *q;

                  int j;

                  printf("請輸入訂票日期:(yyyy,mm,dd)");

                  scanf("%d,%d,%d", & & & q = NEW(int, fltlist[i].m_people);

                  for (j = 0; j < fltlist[i].m_people; j++)

                  q[j] = FALSE;

                  for (p = psglist->next; p != NULL; p = p->next)

                  {

                  if(datecmp(&p->, & &&

                  == p->

                  q[p-> - 1] = TRUE;

                  }

                  printf("以下座位尚未有人訂:");

                  for (j=0; j < fltlist[i].m_people; j++)

                  {

                  if (!q[j])

                  printf("%d ", j + 1);

                  }

                  printf("\n請輸入訂票座位號:");

                  scanf("%d", &;

                  b = FALSE;

                  do

                  {

                  int k;

                  if > 0 && next; p != NULL; p = p->next)

                  {

                  if(strcmp(p->, name) == 0)

                  {

                  b = TRUE;

                  printf("姓名:%s 單位:%s 身份證號:%s\n", p->,

                  p->, p->;

                  printf("訂票日期:%d-%d-%d ", p-> p-> p-> printf("航班號:%d 座位號:%d", p->, p->; break;

                  }

                  }

                  if (!b)

                  {

                  printf("查無此人,按任意鍵退出");

                  getch();

                  return;

                  }

                  printf("是否繼續查詢(y/n)");

                  ClearBuffer();

                  c = getchar();

                  }

                  }

                  void fromto (FLIGHT fltlist[])

                  {

                  char c = "y";

                  while (c == "y" || c == "Y")

                  {

                  BOOL b = FALSE;

                  char from[30], to[30];

                  int i;

                  printf("請輸入起飛港:");

                  scanf("%s", from);

                  printf("請輸入到達港:");

                  scanf("%s", to);

                  for(i = 0; i < 40; i++)

                  {

                  if(strcmp(fltlist[i].m_szFrom,from)==0)

                  {

                  if(strcmp(fltlist[i].m_szTo,to)==0)

                  {

                  b=TRUE;

                  break;

                  }

                  }

                  }

                  if(b)

                  {

                  printf("%s--%s--%s\n",fltlist[i].m_szFrom,fltlist[i].m_szPass,fltlist[i].m_szTo);

                  printf("起飛時間:%2d:%02d 到達時間:%2d:%02d 飛行固定時間:%2d:%02d\n",fltlist[i].,fltlist[i].,fltlist[i].,fltlist[i].,fltlist[i].,fltlist[i].;

                  printf("乘客限額:%d",fltlist[i].m_people);

                  }

                  else

                  printf("無此飛機");

                  getch();

                  printf("是否繼續查詢");

                  ClearBuffer();

                  c = getchar();

                  }

                  }

                  void fltdat(FLIGHT fltlist[], PNODE psglist)

                  {

                  int people[40], i;

                  DATE date;

                  PNODE p;

                  for (i = 0; i < 40; i++)

                  people[i] = 0;

                  printf("請輸入您要查詢的日期(yyyy,mm,dd):");

                  scanf("%d,%d,%d", &, &, &;

                  for (p = psglist->next; p != NULL; p=p->next)

                  {

                  if (datecmp(&date, &p->)

                  {

                  for(i=0;i

                  people[i]++;

                  }

                  }

                  }

                  for (i = 0; i < 40; i++)

                  {

                  if (people[i] > 0)

                  {

                  printf("%d %s--%s--%s 人數:%d", fltlist[i].m_fltno, fltlist[i].m_szFrom,

                  fltlist[i].m_szPass, fltlist[i].m_szTo, people[i]);

                  }

                  }

                  getch();

                  }

                  void Add(FLIGHT fltlist[])

                  {

                  char c = "y";

                  while (c == "y" || c == "Y")

                  {

                  FLIGHT flt;

                  BOOL b;

                  printf("請輸入航班號(1 - 10000):");

                  scanf("%d", &;

                  printf("請輸入起飛港:");

                  scanf("%s", ;

                  printf("請輸入途經港:");

                  scanf("%s", ;

                  printf("請輸入到達港:");

                  scanf("%s", ;

                  printf("請輸入起飛時間(hh:mm):");

                  scanf("%d:%d", & & printf("請輸入到達時間(hh:mm):");

                  scanf("%d:%d", & & printf("請輸入飛行固定時間(hh:mm):");

                  scanf("%d:%d", & & printf("請輸入乘客限額:");

                  scanf("%d", &;

                  ClearBuffer();

                  if (AddFlight(fltlist, &flt))

                  printf("添加成功,");

                  else

                  printf("添加失敗,");

                  printf("繼續添加航班嗎(Y/N)");

                  c = getchar();

                  }

                  }

                  void Del(FLIGHT fltlist[])

                  {

                  BOOL b = FALSE;

                  int i, fltno;

                  char c = "y";

                  while (c == "y" || c == "Y")

                  {

                  printf("可以取消的航班號:");

                  for (i = 0; i < 40; i++)

                  {

                  if (fltlist[i].m_fltno != -1)

                  {

                  b = TRUE;

                  printf("%d ", fltlist[i].m_fltno);

                  }

                  }

                  if (!b)

                  {

                  printf("無\n按任意鍵返回。");

                  getch();

                  return;

                  }

                  printf("\n請輸入要取消的航班號:");

                  scanf("%d", &fltno);

                  for (i = 0; i < 40; i++)

                  {

                  if (fltlist[i].m_fltno == fltno)

                  {

                  DelFlight(fltlist, i);

                  break;

                  }

                  }

                  printf("繼續刪除嗎(y/n)");

                  ClearBuffer();

                  c = getchar();

                  }

                  }

                  void Query(FLIGHT fltlist[])

                  {

                  char c = "y";

                  while (c == "y" || c == "Y")

                  {

                  BOOL b = FALSE;

                  int i, fltno;

                  printf("可以查詢的航班號:");

                  for (i = 0; i < 40; i++)

                  {

                  if (fltlist[i].m_fltno != -1)

                  {

                  b = TRUE;

                  printf("%d ", fltlist[i].m_fltno);

                  }

                  }

                  if (!b)

                  {

                  printf("無\n按任意鍵返回。");

                  getch();

                  return;

                  }

                  printf("\n請輸入要查詢的航班號:");

                  scanf("%d", &fltno);

                  for (i = 0; i < 40; i++)

                  {

                  if (fltlist[i].m_fltno == fltno)

                  {

                  printf("%s--%s--%s 乘客限額:%d\n", fltlist[i].m_szFrom,

                  fltlist[i].m_szPass, fltlist[i].m_szTo, fltlist[i].m_people);

                  printf("起飛時間:%2d:%02d 到達時間:%2d:%02d 飛行固定時間:%2d:%02d\n",

                  fltlist[i]., fltlist[i].,

                  fltlist[i]., fltlist[i].,

                  fltlist[i]., fltlist[i].;

                  break;

                  }

                  }

                  printf("繼續查詢嗎(y/n)");

                  ClearBuffer();

                  c = getchar();

                  }

                  }

                  void OneDay(FLIGHT fltlist[], PNODE psglist)

                  {

                  char c = "y";

                  while (c == "y" || c == "Y")

                  {

                  DATE date;

                  int people[40], i;

                  PNODE p;

                  for (i = 0; i < 40; i++)

                  people[i] = 0;

                  printf("請輸入您要管理的日期(yyyy,mm,dd):");

                  scanf("%d,%d,%d", &, &, &;

                  for (p = psglist->next; p != NULL; p = p->next)

                  {

                  if (datecmp(&p->, &date))

                  {

                  for (i = 0; i < 40; i++)

                  {

                  if (fltlist[i].m_fltno == p->

                  people[i]++;

                  }

                  }

                  }

                  for (i = 0; i < 40; i++)

                  {

                  if (fltlist[i].m_fltno != -1)

                  {

                  printf("%d %s--%s--%s 人數:%d\n", fltlist[i].m_fltno,

                  fltlist[i].m_szFrom, fltlist[i].m_szPass, fltlist[i].m_szTo,

                  people[i]);

                  }

                  }

                  printf("繼續管理嗎(y/n)");

                  ClearBuffer();

                  c = getchar();

                  }

                  }

                  void MultiDay(FLIGHT fltlist[], PNODE psglist)

                  {

                  char c = "y";

                  while (c == "y" || c == "Y")

                  {

                  DATE date[7];

                  int n, i, j;

                  int people[40][7];

                  PNODE p;

                  printf("請輸入要查詢的天數(1-7):");

                  do

                  {

                  scanf("%d", &n);

                  if (n > 7 || n < 1)

                  printf("輸入非法,請重新輸入:");

                  } while (n > 7 || n < 1);

                  for (i = 0; i < n; i++)

                  {

                  printf("請輸入第%d個日期(yyyy,mm,dd):", i);

                  scanf("%d,%d,%d", &date[i].m_year, &date[i].m_month, &date[i].m_day);

                  }

                  for (i = 0; i < 40; i++)

                  for (j = 0; j < 7; j++)

                  people[i][j] = 0;

                  for (p = psglist->next; p != NULL; p = p->next)

                  {

                  for (j = 0; j < n; j++)

                  {

                  if (datecmp(&date[j], &p->)

                  {

                  for (i = 0; i < 40; i++)

                  {

                  if (fltlist[i].m_fltno == p->

                  people[i][j]++;

                  }

                  }

                  }

                  }

                  for (i = 0; i < 40; i++)

                  {

                  if (fltlist[i].m_fltno != -1)

                  {

                  printf("%d %s--%s--%s ", fltlist[i].m_fltno, fltlist[i].m_szFrom,

                  fltlist[i].m_szPass, fltlist[i].m_szTo);

                  for (j = 0; j < n; j++)

                  printf("%d ", people[i][j]);

                  printf("\n");

                  }

                  }

                  printf("繼續查詢嗎(y/n)");

                  ClearBuffer();

                  c = getchar();

                  }

                  }

                  void Manage(FLIGHT fltlist[], PNODE psglist)

                  {

                  for (;;)

                  {

                  char c;

                  system("cls");

                  printf("航班管理\n");

                  printf("~~~~~~~~\n");

                  printf("1.查詢航班基本情況\n");

                  printf("2.對某天航班飛行情況管理\n");

                  printf("3.近期航班飛行情況管理\n");

                  printf("4.取消航班\n");

                  printf("5.新增航班\n");

                  printf("6.返回\n");

                  printf("\n請選擇1-6:");

                  c = getchar();

                  switch (c)

                  {

                  case "1":

                  Query(fltlist);

                  break;

                  case "2":

                  OneDay(fltlist, psglist);

                  break;

                  case "3":

                  MultiDay(fltlist, psglist);

                  break;

                  case "4":

                  Del(fltlist);

                  break;

                  case "5":

                  Add(fltlist);

                  break;

                  case "6":

                  break;

                  default:

                  continue;

                  }

                  if (c == "6")

                  break;

                  }

                  }

                  void SaveFlight(FLIGHT fltlist[])

                  {

                  FILE *fp;

                  if ((fp = fopen("", "wb")) == NULL)

                  {

                  printf("不能打開文件,航班數據無法保存。\n");

                  fclose(fp);

                  return;

                  }

                  fwrite(&fltlist[0], sizeof(FLIGHT), 40, fp);

                  fclose(fp);

                  printf("航班數據已保存至文件。\n");

                  }

                  void SavePassenger(PNODE psglist)

                  {

                  FILE *fp;

                  PNODE p;

                  int n = GetPsgCount(psglist);

                  unlink("");

                  if (n == 0)

                  return;

                  if ((fp = fopen("", "wb")) == NULL)

                  {

                  printf("不能打開文件,乘客數據無法保存。\n");

                  fclose(fp);

                  return;

                  }

                  fwrite(&n, sizeof(int), 1, fp);

                  for (p = psglist->next; p != NULL; p = p->next)

                  fwrite(&p->m_psg, sizeof(PASSENGER), 1, fp);

                  fclose(fp);

                  printf("乘客數據已保存至文件。\n");

                  }

                  void Quit(FLIGHT fltlist[], PNODE psglist)

                  {

                  SaveFlight(fltlist);

                  SavePassenger(psglist);

                  }

                  void main(void)

                  {

                  FLIGHT fltlist[40];

                  NODE psglist;

                  ReadFlight(fltlist);

                  ReadPassenger(&psglist);

                  for (;;)

                  {

                  char c;

                  system("cls");

                  printf("飛機訂票系統\n");

                  printf("~~~~~~~~~~~~\n");

                  printf("---主菜單---\n");

                  printf("1.訂票\n");

                  printf("2.退票\n");

                  printf("3.航班管理\n");

                  printf("4.查詢\n");

                  printf("5.退出\n");

                  printf("\n請選擇1-5:");

                  c = getchar();

                  switch (c)

                  {

                  case "1":

                  Book(fltlist, &psglist);

                  break;

                  case "2":

                  /*c_ticket(fltlist, &psglist);*/

                  break;

                  case "3":

                  Manage(fltlist, &psglist);

                  break;

                  case "4":

                  query(fltlist, &psglist);

                  break;

                  case "5":

                  Quit(fltlist, &psglist);

                  break;

                  default:

                  continue;

                  }

                  if (c == "5")

                  break;

                  }

                  ClearPsgList(&psglist);

                  }

                  實驗3 約瑟夫環(Joseph)

                  任務:編號是1,2,……,n的n個人按照順時針方向圍坐一圈,每個人只有一個密碼(正整數)。一開始任選一個正整數作為報數上限值m,從第一個仍開始順時針方向自1開始順序報數,報到m時停止報數。報m的人出列,將他的密碼作為新的m值,從他在順時針方向的下一個人開始重新從1報數,如此下去,直到所有人全部出列為止。設計一個程序來求出出列順序。

                  要求:利用單向循環鏈表存儲結構模擬此過程,按照出列的順序輸出各個人的編號。

                  測試數據:m的初值為20,n=7 ,7個人的密碼依次為3,1,7,2,4,7,4,首先m=6,則正確的輸出是什么

                  輸入數據:建立輸入處理輸入數據,輸入m的初值,n ,輸入每個人的密碼,建立單循環鏈表。

                  輸出形式:建立一個輸出函數,將正確的輸出序列

                  實驗內容:

                  實驗源程序:

                  #include

                  using namespace std;

                  #define N 7

                  typedef struct node

                  {

                  int data;

                  int sercet;

                  struct node *next;

                  }ListNode;

                  typedef ListNode *LinkList;

                  .再依次5的倍數的牌翻一次,6的,7的 直到 以52為基數的 翻過,輸出:這時正面向上的牌有哪些

                  實驗內容:

                  實驗源程序:

                  #include

                  using namespace std;

                  void Pcout1(int i,int j)

                  {

                  switch(i)

                  {

                  case 0:cout

                  第四篇: 數據結構實驗報告總結

                  電子信息工程學院2014級《數據結構》實驗報告
                  姓名:

                  譚粵薇學號222014333210101
                  實驗項目實驗內容
                  實驗三線性表及其應用(Ⅲ)
                  二、實驗內容
                  采用鏈式存儲結構實現:
                  一元稀疏多項式的計算。要求實現多項式存儲、輸出顯示、相加、相減、相乘。
                  (具體要求見題集第81頁1.5)
                  算法設計與程序實現:算法分析
                  (1輸入并建立多項式

                  (2)按指數降序排列輸出多項式


                  電子信息工程學院2014級《數據結構》實驗報告

                  (3)建立多項式a+b、a-b
                  a.將兩個鏈表中非空的部分進行指數比較
                  b.指數不等時,將指數小的數據復制到新的結點中,指數大的繼續與下一個結點比較
                  c.指數相等時,將兩結點的系數合并后如果不為0則開辟新結點

                  (4)計算a*b
                  外循環遍歷pa表,內循環遍歷pb表,使pa的任一項乘以pb的每一項再合并簡化

                  核心程序



                  電子信息工程學院2014級《數據結構》實驗報告
                  voidDestroyPolyn(Polynp{Polynq1,q2;q1=p->next;q2=q1->next;while(q1->next{
                  free(q1;q1=q2;q2=q2->next;}}
                  voidPrintPolyn(PolynP{Polynq=P->next;intflag=1;//項數計數if(!q{
                  putchar("0";printf("\n";return;}while(q{
                  if(q->coef>0&&flag!=1putchar("+";if(q->coef!=1&&q->coef!=-1{
                  printf("%g",q->coef;if(q->expn==1putchar("X";
                  elseif(q->expnprintf("X^%d",q->expn;}
                  else{
                  if(q->coef==1{
                  if(!q->expnputchar("1";elseif(q->expn==1putchar("X";elseprintf("X^%d",q->expn;}
                  if(q->coef==-1{
                  if(!q->expnprintf("-1";elseif(q->expn==1printf("-X";elseprintf("-X^%d",q->expn;}

                  第五篇: 數據結構實驗報告總結




                  編號:

                  江西理工大學

                  數據結構課程設計報告
                  班級:
                  學號:姓名:時間:

                  指導教師:




                  目錄

                  第一章需求分析..........................................1
                  1.1實驗內容概述......................................11.2實驗目的概述......................................1
                  第二章概要設計......................................2
                  2.1抽象數據類型定義..................................22.2程序流程圖........................................22.3鏈表分析..........................................4
                  第三章詳細設計......................................5
                  3.1定義關鍵步驟......................................53.2定義關鍵函數......................................63.3主函數............................................9
                  第四章調試分析.....................................10
                  4.1問題討論.........................................104.2經驗與體會.......................................124.3測試結果.........................................12
                  第五章總結分析.....................................13第六章參考文獻.....................................13附錄源程序................................................................................14




                  第一章需求分析
                  1.1實驗內容概述
                  ?紙牌游戲
                  編號為1-52張牌,正面向上,從第2張開始,以2為基數,是2的倍數的牌翻一次,直到最后一張牌;然后,從第3張開始,以3為基數,是3的倍數的牌翻一次,直到最后一張牌;然后…從第4張開始,以4為基數,是4的倍數的牌翻一次,直到最后一張牌;...再依次5的倍數的牌翻一次,6的,7的直到以52為基數的翻過,輸出:這時正面向上的牌有哪些?要求:用數組、鏈表結構實現,采用遞歸方法。
                  ?哈夫曼編碼
                  設計出下面字符表的哈夫曼編碼對應的二叉樹,并輸出每個字符的哈夫曼編碼。字符
                  m
                  n44
                  o12
                  p17
                  q9
                  r5
                  出現頻率(%)13
                  1.2實驗目的概述
                  ?紙牌游戲
                  ①了解線性表的特性,以及它們在實際問題中的應用。②掌握順序表和鏈表的實現方法,以及它們的基本操作。
                  ③掌握線性表的鏈式存儲結構——單鏈表的定義及其C語言實現。④掌握線性表在鏈式存儲結構——單鏈表中的各種基本操作。⑤通過用鏈表編程實現問題的解決,提高自身的問題解決能力。
                  ?哈夫曼編碼
                  以字符的頻度為權值,建立哈夫曼樹,求哈夫曼編碼。根據字符及權值得到其相應的編碼。

                  第1頁

                  熱門標簽:
                  《數據結構實驗報告總結范文五篇.doc》
                  將本文的Word文檔下載到電腦,方便收藏和打印
                  推薦度:

                  文檔為doc格式

                  文章下載

                  《數據結構實驗報告總結范文五篇.doc》

                  VIP請直接點擊按鈕下載本文的Word文檔下載到電腦,請使用最新版的WORD和WPS軟件打開,如發現文檔不全可以聯系客服申請處理。

                  文檔下載
                  VIP免費下載文檔
                  <ruby id="zx91x"></ruby><p id="zx91x"></p>
                  <p id="zx91x"></p>
                  <pre id="zx91x"><ruby id="zx91x"><mark id="zx91x"></mark></ruby></pre>
                  
                  
                  <p id="zx91x"><del id="zx91x"></del></p>

                        <track id="zx91x"><ruby id="zx91x"></ruby></track>

                            <pre id="zx91x"><ruby id="zx91x"></ruby></pre>

                            <track id="zx91x"><del id="zx91x"></del></track>

                              <big id="zx91x"><ruby id="zx91x"></ruby></big>

                                  成人视频