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

首頁 > 編程 > C > 正文

C語言 數據結構之連續存儲數組的算法

2020-01-26 14:17:28
字體:
來源:轉載
供稿:網友

數據結構之數組定義及基本操作

  數據結構中最基本的一個結構就是線性結構,而線性結構又分為連續存儲結構和離散存儲結構。所謂的連續存儲結構其實就是數組。

  數組本質其實也是數據的一種存儲方式,既然有了數據的存儲,就會涉及到如何對數據進行尋址的問題。首先,先說一下在數組中數據是如何存儲的,在內存中,數組中的數據是以一組連續的數據集合的形式存在于內存中。當我們訪問存在于內存中的數組時,我們應該找到其在內存中的地址,當我們找到數據的地址后我們就可以找到對應的數據。了解了以上知識后,我們就可以進行數組的設計了(我們就可以設計自己的數組供別人去使用了,哈哈)。

  了解了以上知識后,第一個問題就來了,如何才能找到數據在內存中的地址?這個問題其實很簡單,因為數組在內存中是一組連續的數據集合,所以我們只要知道數組首地址,然后通過對應字節長度的加減就可以找到對應字節數的數據,有了這些就可以定義出我們的數組,但是,作為一個合理的數組,還應該有數組長度的標志len和數組有效元素的標志cnt。由此給出對數組的定義(本例中采用結構體,對結構體不了解的朋友可以去查一下)

struct Arr{  int *pBase; //存儲的是數組的第一個元素的地址  int len; //數組所能容納的最大元素的個數  int cnt; //數組有效元素的個數  };

上述代碼定義了一個struct Arr的結構體,這個結構體就是一個數組,其中有存儲數組元素中首地址的成員,有存儲數組長度和數組有效元素個數的成員。

  有了對結構體的定義之后,就應該涉及到對數組的基本操作,包括數組的初始化,判斷數組是否為空,對數組進行顯示,判斷數組是否已滿,對數組的最后追加一個元素,對數組元素的插入。其中,主要的算法就是對數組元素的插入,插入算法的核心就是首先應該先將被插入及插入位置之后的元素后移,然后將空出來的位置插入我們要插入的元素。一下給出c語言的實現:

/*數組初始化函數 初始化僅僅是給出一個具有一定長度的數組,但是數組中沒有有效值 */void init_arr(struct Arr * pArr,int len){  pArr->pBase=(int *)malloc(sizeof(int)*len);  if(NULL==pArr->pBase){    printf("動態內存分配失敗");    exit(-1); //終止整個程序   }  else{    pArr->len=len;    pArr->cnt=0;  }}/*判斷數組是否為空的函數 */ int is_empty(struct Arr * pArr){  if(pArr->cnt==0){    return 0;  //0代表true   }  else{    return 1;  //1代表false   }}/*數組輸出顯示函數 在進行數組輸出時,首先應該判斷數組是否為空 */void show_arr(struct Arr * pArr){    if(is_empty(pArr)==0){    printf("當前數組為空!");  }  else{    int i;    for(i=0; i<pArr->cnt; ++i){      printf("%d  ",pArr->pBase[i]);    }    printf("/n");  }}/*判斷數組是否已滿的函數 */int is_full(struct Arr * pArr){  if(pArr->cnt==pArr->len){    return 0; //0代表true,表示已滿   }  else{    return 1; //1代表false,表示未滿   }}/*在數組的最后追加一個元素 在追加數組元素前要判斷當前數組是否已滿,已滿時不允許追加新的元素 */int append_arr(struct Arr *pArr,int val){  if(is_full(pArr)==0){    return 0;  }  else{    pArr->pBase[pArr->cnt]=val;    pArr->cnt++;    return 1;  }}/*在數組的指定位置插入元素 插入算法:首先將被插入位置的元素全部后移,然后再將空出來的位置插入。根據算法原理,所以,在插入的時候應該檢查數組是否已滿。 上述兩種情況均合理時,進行數據的插入,插入時,若插入第三個位置,實際是將數據賦值給arr[pos-1] 注意:再將插入位置后的元素后移時,應該從后向前移動。否則,將會造成“被移到”的位置的值被覆蓋 */int insert_arr(struct Arr *pArr,int pos,int val){  if(is_full(pArr)==0){    return 0; //0表示當前數組已滿,無法再進行插入   }    //在數組可插入的情況下,應該檢查用戶輸入的pos位置值是否合理  if(pos<0||pos>(pArr->len)){    return 1; //1表示當前用戶插入位置不合法   }   //移動位置   int i;  for(i=pArr->cnt  -1;i>=pos-1;--i){    pArr->pBase[i+1]=pArr->pBase[i];  }   //空缺位置插入元素  pArr->pBase[pos-1]=val;  return 2; //2表示當前插入成功 }

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

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

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲综合小说区| 久久中文精品视频| 成人免费视频a| 欧美夜福利tv在线| 91精品久久久久| 色婷婷综合久久久久| 欧美性xxxx18| 亚洲视频网站在线观看| 国产精品视频男人的天堂| 91成人在线观看国产| 亚洲的天堂在线中文字幕| 日本精品免费一区二区三区| 亚洲国产精品成人一区二区| 欧美激情性做爰免费视频| 国产精品香蕉在线观看| 久久视频中文字幕| 久久99久久99精品中文字幕| 亚洲成人av在线播放| 日韩精品一区二区三区第95| 在线色欧美三级视频| 国产精品96久久久久久又黄又硬| 国内外成人免费激情在线视频网站| 亚洲欧美日韩在线高清直播| 亚洲成人黄色在线观看| 国产www精品| 欧美视频13p| 91亚洲va在线va天堂va国| 少妇高潮 亚洲精品| 北条麻妃久久精品| 国产精品av在线| 欧美激情视频播放| 日韩有码在线观看| 欧美午夜精品久久久久久浪潮| 亚洲国产97在线精品一区| 精品国产福利在线| 欧美伊久线香蕉线新在线| 日韩成人激情视频| 欧美性xxxx| 一二美女精品欧洲| 国产视频综合在线| 国产美女精品免费电影| 久久伊人精品天天| 亚洲欧美激情视频| 日韩av快播网址| 日韩欧美在线免费| 久久99国产综合精品女同| 亚洲精品成人av| 日韩av大片在线| 国产日韩欧美电影在线观看| 欧美电影免费观看网站| 欧美日韩精品在线播放| 国产精品免费久久久久久| 18久久久久久| 亚洲午夜国产成人av电影男同| 亚洲第一色中文字幕| 国产成人精彩在线视频九色| 美女精品久久久| 国产精品久久久久久久久久东京| 精品久久久久久国产| 韩国精品美女www爽爽爽视频| 亚洲成人久久一区| 亚洲高清久久久久久| 欧美另类第一页| 国产视频精品免费播放| 亚洲精品国产电影| 亚洲欧美日韩高清| 91精品国产色综合| 最近2019中文字幕mv免费看| 国产精品久久久久99| 91精品国产自产在线| 国产日韩在线视频| 国产精品久久久久久久久久新婚| 国产香蕉精品视频一区二区三区| www.日韩不卡电影av| 日韩成人小视频| 国产精品久久久久国产a级| 国产精品日韩在线播放| 91精品国产777在线观看| 亚洲精品suv精品一区二区| 色悠久久久久综合先锋影音下载| 一区二区三区亚洲| 日本精品久久久久影院| 久久久久五月天| 国产精品免费久久久| 国产精品视频成人| 欧美成人sm免费视频| 欧美成人精品激情在线观看| 久热精品视频在线观看| 亚洲第一综合天堂另类专| 丝袜美腿精品国产二区| 亚洲精品日韩av| 国产精品一区二区三区在线播放| 2018中文字幕一区二区三区| 国产原创欧美精品| 一区二区欧美在线| 国产成人精品午夜| 热re91久久精品国99热蜜臀| 久久手机免费视频| 91精品视频在线看| 日韩最新在线视频| 欧美日韩国产在线看| 丝袜美腿精品国产二区| 日韩精品极品在线观看播放免费视频| 中日韩美女免费视频网站在线观看| 亚洲aⅴ男人的天堂在线观看| 日韩黄色av网站| 欧美日韩国产精品一区二区不卡中文| 91久久久久久久一区二区| 日韩美女视频在线观看| 伊人av综合网| 一个人看的www久久| 久久久久久久久综合| 久久国产精品久久久| 成人a在线视频| 亚洲国产一区自拍| 91免费看视频.| 国内精品久久久久久影视8| 欧美电影免费观看| 韩国美女主播一区| 最新69国产成人精品视频免费| 成人黄色网免费| 91av网站在线播放| 九九热在线精品视频| 欧美日韩国产91| 国产精品777| 欧美壮男野外gaytube| 国产精品成人va在线观看| 久久久久国产精品免费| 黑人巨大精品欧美一区二区三区| 91精品国产色综合久久不卡98| 欧美成人免费在线视频| 97在线日本国产| 亚洲精品网站在线播放gif| 一区三区二区视频| 亚洲国产精品va在线看黑人| 最近2019中文字幕大全第二页| 68精品久久久久久欧美| 欧美在线精品免播放器视频| 欧美三级免费观看| 国产精品va在线播放我和闺蜜| 欧美电影在线免费观看网站| 在线丨暗呦小u女国产精品| 久久99精品视频一区97| 国产乱肥老妇国产一区二| 国产精品精品视频| 国产精品爽爽爽爽爽爽在线观看| 日韩不卡在线观看| 欧美国产日本高清在线| 91麻豆国产语对白在线观看| 亚洲小视频在线| 日韩亚洲欧美成人| 在线观看欧美成人| 国产精品尤物福利片在线观看| 欧美风情在线观看| 97在线观看视频国产| 黑人巨大精品欧美一区二区免费| 国产在线观看精品| 91精品国产高清自在线看超| 欧美性高跟鞋xxxxhd| 91视频免费网站| 国产亚洲aⅴaaaaaa毛片| 国产精品电影久久久久电影网| 国产日韩在线看片| 亚洲最新av在线|