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

首頁 > 編程 > C > 正文

C語言實現靜態順序表的實例詳解

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

C語言實現靜態順序表的實例詳解

線性表

定義一張順序表也就是在內存中開辟一段連續的存儲空間,并給它一個名字進行標識。只有定義了一個順序表,才能利用該順序表存放數據元素,也才能對該順序表進行各種操作。

接下來看看靜態的順序表,直接上代碼:

SeqList.h

#define _CRT_SECURE_NO_WARNINGS 1#ifndef __SEQLIST_H__#define __SEQLIST_H__#include <stdio.h>#include <stdlib.h>#include <assert.h>#include <string.h>#define MAX 10typedef int DataType;typedef struct SeqList{ DataType data[MAX]; int sz;}SeqList,*pSeqList;void InitSeqList(pSeqList ps);void PushBack(pSeqList ps, DataType d);void PopBack(pSeqList ps);void PushFront(pSeqList ps, DataType d);void PopFront(pSeqList ps);void Display(const pSeqList ps);int Find(pSeqList ps, DataType d);void Insert(pSeqList ps, DataType d, int pos);void Remove(pSeqList ps, DataType d);void RemoveAll(pSeqList ps, DataType d);void Reverse(pSeqList ps);void Sort(pSeqList ps);int BinarySearch(pSeqList ps, DataType d);#endif//__SEQLIST_H__

SeqList.c

#define _CRT_SECURE_NO_WARNINGS 1#include "SeqList.h"void InitSeqList(pSeqList ps){ assert(ps); ps->sz = 0; memset(ps->data, 0, sizeof(DataType)*MAX);}void PushBack(pSeqList ps, DataType d){ assert(ps); if (ps->sz == MAX) {  return; } ps->data[ps->sz] = d; ps->sz++;}void PopBack(pSeqList ps){ assert(ps); if (ps->sz == 0) {  return; } ps->sz--;}void PushFront(pSeqList ps, DataType d){ int i = 0; assert(ps); for (i = ps->sz; i >= 1; i--) {  ps->data[i] = ps->data[i - 1]; } ps->data[0] = d; ps->sz++;}void PopFront(pSeqList ps){ int i = 0; assert(ps); for (i = 0; i < ps->sz; i++) {  ps->data[i] = ps->data[i + 1]; } ps->sz--;}void Display(const pSeqList ps){ int i = 0; assert(ps); for (i = 0; i < ps->sz; i++) {  printf("%d ", ps->data[i]); } printf("/n");}int Find(pSeqList ps, DataType d){ int i = 0; assert(ps); for (i = 0; i < ps->sz; i++) {  if (ps->data[i] == d)  {   return i;  } } return -1;}void Insert(pSeqList ps, DataType d, int pos){ int i = 0; assert(ps); if (ps->sz == MAX) {  return; } //方式一 //for (i = ps->sz - 1; i >= pos; i--) //{ // ps->data[i + 1] = ps->data[i]; //} //方式二 memmove(ps->data + pos + 1, ps->data + pos, sizeof(DataType)*(ps->sz - pos)); ps->data[pos] = d; ps->sz++;}void Remove(pSeqList ps, DataType d){ int i = 0; int pos = 0; assert(ps); pos = Find(ps, d); if (pos != -1) {  for (i = pos; i < ps->sz; i++)  {   ps->data[i] = ps->data[i + 1];  }  ps->sz--; }}void RemoveAll(pSeqList ps, DataType d){ int i = 0; int pos = 0; assert(ps); pos = Find(ps, d); while ((pos = Find(ps, d)) != -1) {  for (i = pos; i < ps->sz; i++)  {   ps->data[i] = ps->data[i + 1];  }  ps->sz--; }}void Reverse(pSeqList ps){ int left = 0; int right = ps->sz - 1; assert(ps); while (left < right) {  DataType tmp = ps->data[right];  ps->data[right] = ps->data[left];  ps->data[left] = tmp;  left++;  right--; }}void Sort(pSeqList ps){ int i = 0; int j = 0; assert(ps); for (i = 0; i < ps->sz; i++) {  for (j = 0; j < ps->sz - i - 1; j++)  {   if (ps->data[j]>ps->data[j + 1])   {    DataType tmp = ps->data[j];    ps->data[j] = ps->data[j + 1];    ps->data[j + 1] = tmp;   }  } }}int BinarySearch(pSeqList ps, DataType d){ int left = 0; int right = ps->sz - 1; while (left <= right) {  int mid = left - ((left - right) >> 1);  if (d > ps->data[mid])  {   left = mid + 1;  }  else if (d < ps->data[mid])  {   right = mid - 1;  }  else  {   return mid;  } } return -1;}

test.c

#define _CRT_SECURE_NO_WARNINGS 1#include "SeqList.h"void test1(){ SeqList list; InitSeqList(&list); PushBack(&list, 1); PushBack(&list, 2); PushBack(&list, 3); PushBack(&list, 4); Display(&list); PopBack(&list); Display(&list); PopBack(&list); Display(&list); PopBack(&list); Display(&list); PopBack(&list); Display(&list);}void test2(){ int pos = 0; SeqList list; InitSeqList(&list); PushFront(&list, 1); PushFront(&list, 2); PushFront(&list, 3); PushFront(&list, 2); PushFront(&list, 4); PushFront(&list, 2); Display(&list); pos = Find(&list, 3); printf("%d/n", list.data[pos]); PopFront(&list); Display(&list); PopFront(&list); Display(&list); PopFront(&list); Display(&list); PopFront(&list); Display(&list);}void test3(){ int pos = 0; SeqList list; InitSeqList(&list); PushFront(&list, 1); PushFront(&list, 2); PushFront(&list, 3); PushFront(&list, 2); PushFront(&list, 4); PushFront(&list, 2); Display(&list); Insert(&list, 6, 2); Display(&list); Remove(&list, 1); Display(&list); RemoveAll(&list, 2); Display(&list);}void test4(){ int pos = 0; SeqList list; InitSeqList(&list); PushFront(&list, 1); PushFront(&list, 2); PushFront(&list, 3); PushFront(&list, 2); PushFront(&list, 4); Display(&list); Reverse(&list); Display(&list); Sort(&list); Display(&list); pos = BinarySearch(&list, 3); printf("%d/n", list.data[pos]);}int main(){ test4(); system("pause"); return 0;}

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

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

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

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩中文在线中文网三级| 亚洲国产99精品国自产| 亚洲91av视频| 日韩精品免费在线| 国产精品福利观看| 88国产精品欧美一区二区三区| 欧美黄色片视频| 色哟哟入口国产精品| 久久韩剧网电视剧| 久久精品免费电影| 日韩电影大全免费观看2023年上| 97视频人免费观看| 亚洲桃花岛网站| 国产精品999| 国产在线观看精品一区二区三区| 国产成人在线一区二区| 日韩精品在线观看一区二区| 日韩成人在线视频网站| 国产精品一区=区| 国产精品九九九| 色狠狠久久aa北条麻妃| 国产精品久久久久99| 亚洲成年人在线播放| 国产成人精品免费视频| 北条麻妃在线一区二区| 欧美成年人视频网站欧美| 国产精品入口夜色视频大尺度| 亚洲精品一区在线观看香蕉| 日本精品中文字幕| 亚洲色图欧美制服丝袜另类第一页| 欧美激情性做爰免费视频| 91在线视频九色| 日韩精品免费在线播放| 午夜精品久久久久久久久久久久久| 成人免费淫片aa视频免费| 中文字幕欧美在线| 久久久亚洲精选| 欧美久久精品午夜青青大伊人| 成人高h视频在线| 亚洲精品一区二三区不卡| 久久人体大胆视频| 日韩国产在线看| 国产精品影院在线观看| 欧美中文字幕在线视频| 精品中文视频在线| 性欧美暴力猛交69hd| 欧日韩不卡在线视频| 欧美成人免费小视频| 久久天天躁夜夜躁狠狠躁2022| 久久精品国产一区二区电影| 久久天天躁狠狠躁夜夜躁2014| 久久影院免费观看| 国产一区私人高清影院| 欧美午夜激情在线| 精品高清美女精品国产区| 7777精品久久久久久| 久久久久久久国产精品视频| 中文字幕日韩av| 亚洲天堂免费在线| 国产精品亚洲综合天堂夜夜| 欧洲精品毛片网站| 中文字幕精品在线| 日韩av色在线| 日本成人精品在线| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产午夜精品理论片a级探花| 精品久久中文字幕久久av| 日韩免费在线免费观看| 国产91精品青草社区| 国产综合在线视频| 日韩中文字幕在线精品| 91经典在线视频| 精品成人乱色一区二区| 97精品欧美一区二区三区| 国产乱肥老妇国产一区二| 成人免费网站在线观看| 黄色成人av网| 中日韩美女免费视频网站在线观看| 精品久久久久久中文字幕| 亚洲美腿欧美激情另类| 亚洲欧美国内爽妇网| 精品无人国产偷自产在线| 欧美激情女人20p| 国自产精品手机在线观看视频| 日韩电影免费观看中文字幕| 日韩欧美在线视频日韩欧美在线视频| 日韩电视剧免费观看网站| 日韩精品在线视频美女| 午夜精品久久久久久久99黑人| 国产成人+综合亚洲+天堂| 欧美精品18videosex性欧美| 成人免费视频在线观看超级碰| 国内精品久久久久久| 精品视频久久久| 国产精品一区久久| 91精品啪在线观看麻豆免费| 欧美成年人视频| 国模极品一区二区三区| 精品一区二区三区电影| 亚洲精品国产精品自产a区红杏吧| 97精品在线视频| 最近2019中文字幕一页二页| 亚洲成年人在线| 国产精品免费一区二区三区都可以| 欧美在线视频观看免费网站| 性欧美暴力猛交69hd| 欧美有码在线观看视频| 亚洲精品免费一区二区三区| 久久久噜久噜久久综合| 亚洲高清在线观看| 日韩福利视频在线观看| 91av在线网站| 日韩美女在线观看一区| 国产成人黄色av| 亚洲日本欧美中文幕| 亚洲欧洲成视频免费观看| 成人久久一区二区三区| 久久久免费在线观看| 亚洲激情久久久| 中文日韩在线观看| 欧美韩日一区二区| 69久久夜色精品国产69乱青草| 久久综合亚洲社区| 欧美精品在线免费观看| 色综合天天狠天天透天天伊人| 欧美性黄网官网| 日韩精品视频观看| 日韩成人在线网站| 亚洲欧美精品suv| 国产成人精品久久| 国产成人精品久久二区二区| 亚洲欧美日本伦理| 欧美另类高清videos| 亚洲一区二区三区成人在线视频精品| 国内精品免费午夜毛片| 国产精品免费视频久久久| 青青草99啪国产免费| 欧美性高潮床叫视频| 欧美性xxxxxx| 欧美成人免费大片| 秋霞av国产精品一区| 日韩中文字幕视频在线| 久久久噜噜噜久久中文字免| 尤物yw午夜国产精品视频明星| 九色精品美女在线| 国产精品男女猛烈高潮激情| 亚洲精品美女久久| 亚洲一区亚洲二区亚洲三区| 亚洲成色www8888| 色噜噜狠狠狠综合曰曰曰88av| 亚洲一级黄色av| 久久久999精品视频| 欧美巨猛xxxx猛交黑人97人| 韩剧1988在线观看免费完整版| 国产精品露脸自拍| 国产啪精品视频网站| 欧美性猛交xxxx免费看久久久| 精品亚洲一区二区三区在线播放| 一区二区三区亚洲| 中文字幕成人精品久久不卡| 神马久久桃色视频| 日韩中文视频免费在线观看| 亲爱的老师9免费观看全集电视剧| 日韩av电影手机在线|