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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【数据结构】—顺序表的插入、删除、查找操作

發布時間:2024/7/23 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【数据结构】—顺序表的插入、删除、查找操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include <stdio.h> #include <malloc.h> #include <stdlib.h> #define InitSize 10 //默認的最大長度 typedef struct{int *data; //指示動態分配數組的指針 int MaxSize; //順序表的最大容量 int length; //順序表的當前長度 }SeqList;void InitList(SeqList &L){//用malloc函數申請一片連續的存儲空間 L.data=(int *)malloc(InitSize*sizeof(int));L.length=0;L.MaxSize=InitSize; } //增加動態數組的長度 void IncreaseSize(SeqList &L ,int len){int *p=L.data;L.data=(int *)malloc((L.MaxSize+len)*sizeof(int));for(int i=0;i<L.length;i++){L.data[i]=p[i]; //將數據復制到新區域 }L.MaxSize=L.MaxSize+len;//順序表最大長度增加len free(p); //釋放原來的內存空間 }//插入操作 bool ListInsert(SeqList &L,int i,int e){if(i<1||i>L.length+1){return false;}if(L.length>=L.MaxSize){return false;}for(int j=L.length;j>=i;j--){L.data[j]=L.data[j-1];}L.data[i-1]=e; //把騰出的空間插入元素eL.length++;return true; } //刪除操作 bool ListDelete(SeqList &L,int i,int &e) {if(i<1||i>L.length){return false;}e=L.data[i-1];for(int j=i;j<L.length;j++){L.data[j-1]=L.data[j];}L.length--;return true; }//按值查找順序表,找到第一個元素值等于e的位序并返回其位序 int LocateElem(SeqList L, int e) {int i;for (i = 0; i < L.length; i++)if (L.data[i]==e)return i + 1;return 0; }int main(){int e;SeqList L; //聲明一個順序表 InitList(L); //初始化順序表 IncreaseSize(L,5);//插入元素 printf("請輸入:\n"); for(int i = 0; i < L.MaxSize; i++){scanf("%d",&e);ListInsert(L,i,e); //(順序表,位序,插入值); }//依次輸出順序表中的元素 for (int i = 0; i < L.length; i++) {printf("data[%d]=%d\n", i, L.data[i]);} //按值查找printf("已找到,6在順序表中的第:%d位\n", LocateElem(L, 6) );//刪除操作 ListDelete(L,3,e);//(順序表,位序,返回的被刪除的元素) printf("刪除元素值為:%d\n",e);return 0;return 0; }

輸出:

不懂請留言,謝謝!

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的【数据结构】—顺序表的插入、删除、查找操作的全部內容,希望文章能夠幫你解決所遇到的問題。

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