日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据结构之数组定义及基本操作(转)

發布時間:2025/4/14 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构之数组定义及基本操作(转) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
數據結構之數組定義及基本操作數據結構中最基本的一個結構就是線性結構,而線性結構又分為連續存儲結構和離散存儲結構。所謂的連續存儲結構其實就是數組。數組本質其實也是數據的一種存儲方式,既然有了數據的存儲,就會涉及到如何對數據進行尋址的問題。首先,先說一下在數組中數據是如何存儲的,在內存中,數組中的數據是以一組連續的數據集合的形式存在于內存中。當我們訪問存在于內存中的數組時,我們應該找到其在內存中的地址,當我們找到數據的地址后我們就可以找到對應的數據。了解了以上知識后,我們就可以進行數組的設計了(我們就可以設計自己的數組供別人去使用了,哈哈)。了解了以上知識后,第一個問題就來了,如何才能找到數據在內存中的地址?這個問題其實很簡單,因為數組在內存中是一組連續的數據集合,所以我們只要知道數組首地址,然后通過對應字節長度的加減就可以找到對應字節數的數據,有了這些就可以定義出我們的數組,但是,作為一個合理的數組,還應該有數組長度的標志len和數組有效元素的標志cnt。由此給出對數組的定義(本例中采用結構體,對結構體不了解的朋友可以去查一下)復制代碼 1 struct Arr 2 { 3 int *pBase; //存儲的是數組的第一個元素的地址 4 int len; //數組所能容納的最大元素的個數 5 int cnt; //數組有效元素的個數 6 7 }; 復制代碼 上述代碼定義了一個struct Arr的結構體,這個結構體就是一個數組,其中有存儲數組元素中首地址的成員,有存儲數組長度和數組有效元素個數的成員。有了對結構體的定義之后,就應該涉及到對數組的基本操作,包括數組的初始化,判斷數組是否為空,對數組進行顯示,判斷數組是否已滿,對數組的最后追加一個元素,對數組元素的插入。其中,主要的算法就是對數組元素的插入,插入算法的核心就是首先應該先將被插入及插入位置之后的元素后移,然后將空出來的位置插入我們要插入的元素。一下給出c語言的實現:復制代碼1 /*2 數組初始化函數 3 初始化僅僅是給出一個具有一定長度的數組,但是數組中沒有有效值 4 */5 void init_arr(struct Arr * pArr,int len)6 {7 pArr->pBase=(int *)malloc(sizeof(int)*len);8 if(NULL==pArr->pBase){9 printf("動態內存分配失敗"); 10 exit(-1); //終止整個程序 11 } 12 else{ 13 pArr->len=len; 14 pArr->cnt=0; 15 } 16 } 17 18 /* 19 判斷數組是否為空的函數 20 */ 21 int is_empty(struct Arr * pArr){ 22 if(pArr->cnt==0){ 23 return 0; //0代表true 24 } 25 else{ 26 return 1; //1代表false 27 } 28 } 29 30 /* 31 數組輸出顯示函數 32 在進行數組輸出時,首先應該判斷數組是否為空 33 */ 34 void show_arr(struct Arr * pArr){ 35 if(is_empty(pArr)==0){ 36 printf("當前數組為空!"); 37 } 38 else{ 39 int i; 40 for(i=0; i<pArr->cnt; ++i){ 41 printf("%d ",pArr->pBase[i]); 42 } 43 printf("\n"); 44 } 45 } 46 47 /* 48 判斷數組是否已滿的函數 49 */ 50 int is_full(struct Arr * pArr){ 51 if(pArr->cnt==pArr->len){ 52 return 0; //0代表true,表示已滿 53 } 54 else{ 55 return 1; //1代表false,表示未滿 56 } 57 } 58 59 /* 60 在數組的最后追加一個元素 61 在追加數組元素前要判斷當前數組是否已滿,已滿時不允許追加新的元素 62 */ 63 int append_arr(struct Arr *pArr,int val){ 64 if(is_full(pArr)==0){ 65 return 0; 66 } 67 else{ 68 pArr->pBase[pArr->cnt]=val; 69 pArr->cnt++; 70 return 1; 71 } 72 } 73 74 /* 75 在數組的指定位置插入元素 76 插入算法:首先將被插入位置的元素全部后移,然后再將空出來的位置插入。 77 根據算法原理,所以,在插入的時候應該檢查數組是否已滿。 78 上述兩種情況均合理時,進行數據的插入,插入時,若插入第三個位置,實際是將數據賦值給arr[pos-1] 79 注意:再將插入位置后的元素后移時,應該從后向前移動。否則,將會造成“被移到”的位置的值被覆蓋 80 */ 81 int insert_arr(struct Arr *pArr,int pos,int val){ 82 if(is_full(pArr)==0){ 83 return 0; //0表示當前數組已滿,無法再進行插入 84 } 85 //在數組可插入的情況下,應該檢查用戶輸入的pos位置值是否合理 86 if(pos<0||pos>(pArr->len)){ 87 return 1; //1表示當前用戶插入位置不合法 88 } 89 //移動位置 90 int i; 91 for(i=pArr->cnt -1;i>=pos-1;--i){ 92 pArr->pBase[i+1]=pArr->pBase[i]; 93 } 94 //空缺位置插入元素 95 pArr->pBase[pos-1]=val; 96 return 2; //2表示當前插入成功 97 } 復制代碼學習過程中的一些心得,拿出來記錄一下,希望能對看到的朋友有所幫助,有錯誤的地方歡迎批評指出。

?

轉載于:https://www.cnblogs.com/bytebee/p/8595905.html

總結

以上是生活随笔為你收集整理的数据结构之数组定义及基本操作(转)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩三级久久 | 青青草午夜 | 在线欧美一区 | 日韩精品成人 | 91九色成人 | 91狠狠综合| 久久综合九色 | 日韩欧美超碰 | 99福利在线| 在线视频网 | 丁香六月av | 人妻少妇被猛烈进入中文字幕 | 亚洲黄色网址 | 欧美精品韩国精品 | 91网在线| 亚洲一区二区激情 | 啪啪av导航 | 成人免费公开视频 | 国产精品91久久 | 韩国三级hd中文字幕的背景音乐 | 亚洲国产一区二区三区四区 | 日韩中文字幕在线播放 | 欧美午夜精品理论片a级按摩 | 亚洲综合不卡 | 奇米精品一区二区三区在线观看 | 欧美人妻一区二区 | 国产视频一区在线播放 | 国产精品丝袜视频无码一区69 | 黑人精品一区二区三区 | 欧美日韩1区2区3区 亚洲日本精品视频 | 国产aⅴ激情无码久久久无码 | 亚洲AV无码精品色毛片浪潮 | 岛国av在线免费观看 | 中文字幕乱码亚洲精品一区 | 亚洲射吧 | 美腿丝袜av | 欧美三级一区 | 日本人六九视频 | 香蕉久久一区二区三区 | 亚洲天堂影视 | 国产一区二区三区四区精 | 动漫艳母在线观看 | 国产福利一区视频 | 日本丰满大乳奶做爰 | 日本精品视频在线观看 | 国产艳俗歌舞表演hd | 四虎影视黄色 | 性生活三级视频 | 中文字幕日韩精品无码内射 | 娇妻高潮浓精白浆xxⅹ | 免费久草视频 | 黄片毛片在线观看 | 制服一区二区 | 三级视频网站 | yy色综合| 91麻豆精品在线观看 | 777奇米色 | 人妻互换 综合 | 侵犯女教师一区二区三区 | 久久久精品视频在线观看 | 国产真实的和子乱拍在线观看 | 免费www xxx | 91丨九色丨海角社区 | xxx日本黄色| 狠狠cao日日穞夜夜穞av | 亚洲欧美一 | 狠色综合7777夜色撩人 | av在线收看 | 午夜在线精品 | 久久精品国产亚洲av麻豆色欲 | 日日碰狠狠添天天爽无码 | 91在线资源 | 成人在线观看国产 | 亚洲综合色在线观看 | 无码人妻aⅴ一区二区三区69岛 | 丁香婷婷六月天 | 一区二区精品在线 | 乳揉みま痴汉4在线播放 | 欧美日韩中文字幕一区二区三区 | 欧美三级韩国三级日本三斤 | 午夜欧美视频 | 日韩在线播放一区二区 | 欧美熟妇精品久久久久久 | 国产精品91一区 | 国产精品久久无码一三区 | 国产美女视频免费观看下载软件 | 99精品偷自拍 | 成人一级片 | 亚洲黄色在线观看视频 | 51精品国自产在线 | 日日燥夜夜燥 | 涩涩视频在线播放 | 五月天丁香久久 | 精品中文一区二区三区 | 91久久视频| 天天射天天色天天干 | 中文字幕影院 | 中文幕无线码中文字夫妻 | 偷拍视频久久 |