亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

C語言實現動態順序表的實現代碼

2020-01-26 13:58:23
字體:
來源:轉載
供稿:網友

C語言實現動態順序表的實現代碼

順序表是在計算機內存中以數組的形式保存的線性表,是指用一組地址連續的存儲單元依次存儲數據元素的線性結構。線性表采用順序存儲的方式存儲就稱之為順序表。順序表是將表中的結點依次存放在計算機內存中一組地址連續的存儲單元中。

靜態實現:結構體內部只需兩個成員,其中一個為固定大小(MAX)的數組,用來存放我們的數據。數組大小我們可以通過在頭文件中改變MAX的值來改變。

動態實現:在內存中開辟一塊空間,可以隨我們數據數量的增多來擴容。

來看看動態的順序表實現:

1.seqlist.h

#define _CRT_SECURE_NO_WARNINGS 1  #ifndef __SEQLIST_H__ #define __SEQLIST_H__ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <assert.h>  typedef int DataType;  #define DEFAULT_SZ 3 #define INC_SZ 2  typedef struct SeqList {  DataType *data;  int sz;  int capacity; }SeqList,*pSeqList;  void InitSeqList(pSeqList pList); void PushBack(pSeqList pList,DataType d); void PopBack(pSeqList pList); void PushFront(pSeqList pList, DataType d); void PopFront(pSeqList pList); int Find(pSeqList pList, DataType d); void Remove(pSeqList pList, DataType d); void RemoveAll(pSeqList pList, DataType d); void BubbleSort(pSeqList pList); int BinarySearch(pSeqList pList, DataType d); void PrintfSeqList(pSeqList pList); void Insert(pSeqList pList, int pos, DataType d); void ReverseList(pSeqList pList); void DestroySeqList(pSeqList pList);     #endif//__SEQLIST_H__ 

2.seqlist.c

#define _CRT_SECURE_NO_WARNINGS 1  #include "seqlist.h"  void InitSeqList(pSeqList pList) {  pList->sz = 0;  pList->data = (DataType*)malloc(sizeof(DataType)*DEFAULT_SZ);  if (pList->data == NULL)  {   perror("malloc");   return;  }  memset(pList->data, 0, sizeof(DataType)*DEFAULT_SZ); } void CheckCapacity(pSeqList pList) {  assert(pList);  if (pList->sz == pList->capacity)  {   DataType*ret = (DataType*)realloc(pList->data, sizeof(DataType)*(pList->capacity + INC_SZ));   if (ret == NULL)   {    perror("realloc");   }   pList->data = ret;   pList->capacity += INC_SZ;   } } void PushBack(pSeqList pList, DataType d) {  assert(pList);  if (pList->sz == pList->capacity)  {   CheckCapacity(pList);  }  pList->data[pList->sz] = d;  pList->sz++; } void PopBack(pSeqList pList) {  int i = 0;  assert(pList);  if (pList->sz == 0)  {   printf("順序表為空:<");   return;  }  pList->sz--; } void PushFront(pSeqList pList, DataType d) {  int i = 0;  assert(pList);  if (pList->sz == pList->capacity)  {   CheckCapacity(pList);  }  for (i = pList->sz; i >= 1; i--)  {   pList->data[i] = pList->data[i - 1];  }  pList->data[0] = d;  pList->sz++; } void PopFront(pSeqList pList) {  int i = 0;  assert(pList);  for (i = 0; i < pList->sz; i++)  {   pList->data[i] = pList->data[i + 1];  }  pList->sz--; } int Find(pSeqList pList, DataType d) {  int i = 0;  assert(pList);  while (i < pList->sz)  {   if (pList->data[i] == d)   {    return i;   }   else   {    i++;   }  }  return -1; } void Remove(pSeqList pList, DataType d) {  int i = 0;  int pos = 0;  assert(pList);  while (pList->data[pos=Find(pList,d)]==d)  {   for (i = pos; i < pList->sz-1; i++)   {    pList->data[i] = pList->data[i + 1];   }   pList->sz--;  } } void RemoveAll(pSeqList pList, DataType d) {  int i = 0;  int pos = 0;  assert(pList);  while ((pos = Find(pList, d)) != -1)  {   for (i = pos; i < pList->sz - 1; i++)   {    pList->data[i] = pList->data[i + 1];   }   pList->sz--;  } } void BubbleSort(pSeqList pList) {  int i = 0;  assert(pList);  for (i = 0; i < pList->sz - 1; i++)  {   int j = 0;   for (j = 0; j < pList->sz - i - 1; j++)   {    if (pList->data[j]>pList->data[j + 1])    {     DataType tmp = pList->data[j];     pList->data[j] = pList->data[j + 1];     pList->data[j + 1] = tmp;    }   }  } } int BinarySearch(pSeqList pList, DataType d) {  int left = 0;  int right = pList->sz - 1;  assert(pList);  while (left <= right)  {   int mid = left - ((left - right) >> 1);   if (d > pList->data[mid])   {    left = mid + 1;   }   else if (d < pList->data[mid])   {    right = mid - 1;   }   else    return mid;  }  return -1; } void PrintfSeqList(pSeqList pList) {  int i = 0;  for (i = 0; i < pList->sz; i++)  {   printf("%d ", pList->data[i]);  } } void Insert(pSeqList pList, int pos, DataType d) {  int i = 0;  if (pList->sz == pList->capacity)  {   CheckCapacity(pList);  }  for (i = pList->sz - 1; i >= pos; i--)  {   pList->data[i + 1] = pList->data[i];  }  pList->data[pos] = d;  pList->sz++; } void ReverseList(pSeqList pList) {  int left = 0;  int right = pList->sz - 1;  assert(pList);  while (left < right)  {   DataType tmp = pList->data[left];   pList->data[left] = pList->data[right];   pList->data[right] = tmp;   left++;   right--;  } } void DestroySeqList(pSeqList pList) {  free(pList->data);  pList->data = NULL; } 

3.test.c

#define _CRT_SECURE_NO_WARNINGS 1 #include "seqlist.h"  //void Test() //{ // SeqList *List; // InitSeqList(&List); // PushBack(&List, 1); // PushBack(&List, 2); // PushBack(&List, 3); // PushBack(&List, 4); // PushBack(&List, 5); // PopBack(&List); // printf("%d ", Find(&List, 2)); // PrintfSeqList(&List); //}  void Test2() {  SeqList List;  InitSeqList(&List);  PushBack(&List, 1);  PushBack(&List, 2);  PushBack(&List, 3);  PushBack(&List, 4);  PushBack(&List, 5);  PushFront(&List, 5);  PushFront(&List, 2);  PushFront(&List, 3);  //PopFront(&List);  RemoveAll(&List, 5);  //BubbleSort(&List);  //BinarySearch(&List, 3);  PrintfSeqList(&List); } int main() {  Test2();  system("pause/n");  return 0; } 

靜態順序表的實現://www.49028c.com/article/120875.htm

以上就是動態實現順序表的實例,如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
全色精品综合影院| 日本道色综合久久影院| 国产一区二区三区在线观看网站| 一本色道久久综合亚洲精品小说| 久久精品99久久香蕉国产色戒| 欧美人与性动交| 亚洲精品国产拍免费91在线| 91免费在线视频| 欧美在线一级va免费观看| 久久好看免费视频| 国产精品91视频| 亚洲第一精品福利| 亚洲国产成人av在线| 奇门遁甲1982国语版免费观看高清| 亚洲国产精品久久精品怡红院| 久久99视频免费| 国产一区深夜福利| 欧美日韩午夜剧场| 裸体女人亚洲精品一区| 91亚洲精品久久久| 欧美精品激情blacked18| 国产精品1区2区在线观看| 国产午夜精品美女视频明星a级| 亚洲美女福利视频网站| 久久精品国产精品| 懂色aⅴ精品一区二区三区蜜月| 欧美日韩免费区域视频在线观看| 78色国产精品| 久久香蕉频线观| 欧美日韩国产综合视频在线观看中文| 亚洲人成在线一二| 久久久亚洲精品视频| 中文字幕一区日韩电影| 久久人人爽人人爽人人片av高清| 欧美日韩另类在线| 欧美亚洲另类制服自拍| 欧美电影免费观看高清| 欧美日韩一区二区在线| 亚洲精品wwww| 中文字幕视频在线免费欧美日韩综合在线看| 国外成人在线直播| 日韩在线不卡视频| 欧美中文在线免费| 国产欧美在线视频| 亚洲xxxx妇黄裸体| 国产有码一区二区| 欧美激情视频在线| 欧美在线欧美在线| 91免费欧美精品| 亚洲高清在线观看| 伊人久久久久久久久久久| 亚洲精品综合精品自拍| 欧美成人激情视频| 欧美做爰性生交视频| 午夜精品美女自拍福到在线| 国内精品国产三级国产在线专| 亚洲成人久久一区| 爽爽爽爽爽爽爽成人免费观看| 日韩国产激情在线| 亚洲视频精品在线| 久久综合色影院| 久热精品视频在线| 午夜剧场成人观在线视频免费观看| 欧美高清视频一区二区| 日韩高清免费在线| 欧美日韩亚洲精品一区二区三区| 在线播放国产精品| 日韩电视剧免费观看网站| 国产精品91久久久| 欧美激情第一页xxx| 亚洲精品成人网| 日韩一区二区在线视频| 亚洲欧美精品一区| 懂色av中文一区二区三区天美| 欧美高清性猛交| 亚洲精品福利在线| 91在线精品视频| 国产精品成人观看视频国产奇米| 日韩大片在线观看视频| 欧美性视频网站| 91九色视频在线| 久久国产一区二区三区| 国产成人午夜视频网址| 高跟丝袜一区二区三区| 91在线观看欧美日韩| 久久资源免费视频| 日本中文字幕久久看| 91色视频在线观看| 日产日韩在线亚洲欧美| 在线观看亚洲视频| 成人性教育视频在线观看| 深夜福利亚洲导航| 国产精品高潮粉嫩av| 久久99热精品这里久久精品| 啊v视频在线一区二区三区| 久久精品99无色码中文字幕| 亚洲人成网7777777国产| 国产午夜精品麻豆| 国产精品免费视频xxxx| 精品国产91乱高清在线观看| 91精品国产一区| 欧美视频13p| 91九色蝌蚪国产| 国产精品入口福利| 欧洲精品久久久| 亚洲品质视频自拍网| 韩剧1988免费观看全集| 国产精品女主播| 亚洲国内精品在线| 亚洲a一级视频| 久久99国产精品久久久久久久久| 国产精品久久久久99| 成人做爰www免费看视频网站| 在线视频欧美日韩精品| 中日韩美女免费视频网站在线观看| 日韩精品极品视频| 亚洲在线免费视频| 日韩成人在线播放| 久久在线免费视频| 97视频色精品| 91精品国产色综合久久不卡98口| 精品亚洲一区二区| 亚洲精品午夜精品| 国产www精品| 欧美性xxxxx| 91精品国产高清久久久久久| 欧美一区二区色| 国语自产在线不卡| 亚洲国产小视频| 97在线精品国自产拍中文| 亚洲精品久久久久久久久久久| 国产在线久久久| 久久成人精品视频| 在线精品视频视频中文字幕| 91国在线精品国内播放| 欧美亚洲成人免费| 亚洲免费视频在线观看| 久久视频精品在线| 中文字幕日韩综合av| 精品久久久久久久久久ntr影视| 亚洲精品国产综合区久久久久久久| 国产91色在线|免| 欧美电影免费观看高清完整| 欧美在线影院在线视频| 国产精品久久久久久久久久久新郎| 亚洲人免费视频| 日本高清+成人网在线观看| 国产精品视频内| 亚洲人成在线播放| 国产盗摄xxxx视频xxx69| 久热爱精品视频线路一| 国内精品中文字幕| 最新的欧美黄色| 91深夜福利视频| 55夜色66夜色国产精品视频| 亚洲成人教育av| 欧美精品亚州精品| 国产精品亚洲第一区| 亚洲国产欧美一区二区丝袜黑人| 欧美麻豆久久久久久中文| 日韩中文在线不卡| 色婷婷亚洲mv天堂mv在影片| 欧美一区二三区| 国产亚洲精品美女|