狠狠干影院/欧美午夜电影在线观看/高黄文/国产精品一区二区在线观看完整版

順序表基本算法實驗報告

| 瀏覽次數:

 C 語言程序設計實踐

 綜合題目:

  順序表基本算法

  班

 級:

 姓

 名:

 同組人員:

  提交日期:

 一、程序功能:

 1、建立一個順序表。2、對建立好的順序表進行一些基本的操作,如:

 a.順序表的類型定義。

 b.求順序表長操作。

 c.取順序表元素操作。

 d.按值查找操作。

 e.顯示元素操作。

 f.插入操作。

 g.刪除操作。

 h.顯示元素操作。

  二、算法設計思想:

 用一組存儲單元來存放線性表中的數據元素,把順序表中的所有元素按照其邏輯結構順序依次儲存到從計算機儲存器中指定儲存位置開始的一塊連續的儲存空間。線性表中的第一個位置儲存在數組的起始位置(下標為 0)在定義一個順序表時,除了定義一個數組來儲存線性表中的所有元素,還需要定義一個整型變量來儲存線性表的實際長度。然后通過對數組元素中的元素進行操作,對順序表進行基本算法。

 三、 算法運行結果

 1、顯示整個功能

  2、設置順序表的長度:

  3、求出并返回順序表的長度:

 4、在順序表中取出某個位置的元素并返回其值:

  5、顯示順序表中的元素:

 6、在順序表的某個位置插入元素:

  7、刪除順序表中的某個元素

  8、輸出順序表

  9、將順序表逆序輸出

 10、退出對順序表的操作:

  四、收獲及體會 通過對順序表的幾個基本運算的調用,實現順序表的幾個基本算法。同時也懂得如何定義順序表,還有順序表的用法。

  五、算法源代碼 #include<stdio.h> #include<stdlib.h> #define

 MaxSize

  50

  typedef

  int

 ElemType ; typedef

  struct

  {

  ElemType data[MaxSize];

  int length;

  }SqList;

 //順序表類型

 void InitList(SqList *& L); //初始化順序表

 void CreateList(SqList*& L,ElemType a[],ElemType n); //建立順序表

 bool ListEmpty(SqList *L);

 //判斷順序表是否為空表

 int ListLength(SqList *L);

 //求順序表長度

 void DispList(SqList *L);

  //輸出順序表

 bool GetElem(SqList *L,ElemType i,ElemType &e);

  //求順序表中某個元素值

 int LocateElem(SqList *L,ElemType e);

 //按照元素值查找

 bool ListInsert(SqList *& L,ElemType i,ElemType e);

 //插入元素 e

  bool ListDelete(SqList *& L,int i,ElemType &e);

 //刪除元素

 void DestroyList(SqList *&L);

 //銷毀順序表

  void InitList(SqList *& L)

 //初始化順序表

 {

 L=(SqList*)malloc(sizeof(SqList));

 L->length=0; } void CreateList(SqList*& L,ElemType a[],ElemType n)

  //建立順序表

  2 {

 int i;

 L=(SqList *)malloc(sizeof(SqList));

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

 L->data[i]=a[i];

 L->length=n; } bool ListEmpty(SqList *L)

  //判斷順序表是否為空表

 {

 return(L->length==0); } int ListLength(SqList *L)

  //求順序表長度

 {

 return(L->length); } void DispList(SqList *L)

  //輸出順序表

  {

 int i;

 for(i=0;i<L->length;i++)

  printf("%3d",L->data[i]);

  printf("\n"); }

 bool GetElem(SqList *L,ElemType i,ElemType &e)

  //求順序表中某個元素值

 {

 if(i<1||i>L->length)

 return false;

 e=L->data[i-1];

 return true; }

 int LocateElem(SqList *L,ElemType e)

 //按照元素值查找

  {

 int i=0;

 while(i<L->length&&L->data[i]!=e)

 i++;

 if(i>L->length)

 return 0;

 else

  return i+1; } bool ListInsert(SqList *& L,ElemType i,ElemType e)

 //插入元素 e

  {

 int j;

 if(i<1||i>L->length+1)

 return false;

 i--;

 for(j=L->length;j>i;j--)

 L->data[j]=L->data[j-1];

 L->data[i]=e;

 L->length++;

 return true;

 } bool ListDelete(SqList *& L,int i,ElemType &e)

 //刪除元素

  {

 int j;

 L = NULL;

 if(i<1||i>L->length)

 return false;

 i--;

 e=L->data[i];

 for(j=i;j<L->length-1;j++)

 L->data[j]=L->data[j+1];

 L->length--;

 return true; } void DestroyList(SqList *&L)

  //銷毀順序表

 {

 free(L);

 L = NULL; }

推薦訪問: 算法 順序 實驗

【順序表基本算法實驗報告】相關推薦

工作總結最新推薦

NEW