順序表增刪改查(c語言)

main函數:

 #include <stdio.h>#include "./seq.h"int main(int argc, const char *argv[]){SeqList* list =  create_seqList();insert_seqList(list,10);insert_seqList(list,100);insert_seqList(list,12);insert_seqList(list,23);show_seqList(list);int res;res=delete_seqList(list);printf("%d\n",res);                                 insert_byid_seqList(list,66,1);show_seqList(list);int n=delete_byid_seqList(list,2);printf("被刪除的數據為%d\n",n);show_seqList(list);updata_byid(list,1);show_seqList(list);int x=search_byid(list,1);printf("查找的數據為%d\n",x);int idx=selectidx_bydata_seqList(list,10);printf("%d\n",idx);return 0;}

函數部分:

  1 #include <stdio.h>                                                                                                                                    2 #include <stdlib.h>                                                                                                                                   3 #include "./seq.h"                                                                                                                                    4                                                                                                                                                       5 /*                                                                                                                                                    6  * function:    創建順序表                                                                                                                            7  * @param[ in]                                                                                                                                        8  * @param[out]                                                                                                                                        9  * @return                                                                                                                                            10  */                                                                                                                                                   11 //創建順序表                                                                                                                                          12 SeqList* create_seqList()                                                                                                                             13 {                                                                                                                                                     14     SeqList *list=(SeqList *)malloc(sizeof(SeqList));//申請對空間在函數結束后不會被銷毀                                                               15     if(NULL == list)//定義順序表是否為空                                                                                                              16     {                                                                                                                                                 17         return NULL;                                                                                                                                  18     }                                                                                                                                                 19     list->pos=0;//初始化記錄下標位置為0                                                                                                               20                                                                                                                                                       21     return list;                                                                                                                                      22 }                                                                                                                                                     23 //在順序表尾部插入數據                                                                                                                                24 void insert_seqList(SeqList * list,datatype num)                                                                                                      25 {                                                                                                                                                     26     if(list->pos >= N)          //判斷順序表是否滿了                                                                                                  27     {                                                                                                                                                 28         printf("順序表已滿,插入失敗!\n");                                                                                                           29         return;                                                                                                                                       30     }                                                                                                                                                 31     list->data[list->pos] = num;//將要插入的數據給到末尾為的pos下標                                                                                   32     (list->pos)++;              //將pos后移                                                                                                           33     printf("插入成功!\n");                                                                                                                           34     return;                                                                                                                                           35 }                                                                                                                                                     36 //根據下標插入數據                                                                                                                                    37 void insert_byid_seqList(SeqList *list,datatype num,int n)//n為需要插入數據的下標                                                                     38 {                                                                                                                                                     39     int i;                                                                                                                                            40     if(n<0||n>list->pos)                                                                                                                              41     {                                                                                                                                                 42         printf("插入的位置非法!\n");                                                                                                                 43     }                                                                                                                                                 44                                                                                                                                                       45     if(n>list->pos || list->pos>=N)                                                                                                                   46     {                                                                                                                                                 47         printf("順序表已滿,插入失敗!\n");                                                                                                           48         return;                                                                                                                                       49     }                                                                                                                                                 50         for(i=list->pos;i>n;i--)//先將順序表中的數據后移                                                                                              51     {                                                                                                                                                 52         list->data[i]=list->data[i-1];                                                                                                                53     }                                                                                                                                                 54     list->data[n] = num;   //將目標數據賦給目標下標                                                                                                   55     (list->pos)++;         //將pos的值+1                                                                                                              56     printf("插入成功!\n");                                                                                                                           57                                                                                                                                                       58 }                                                                                                                                                     59 //根據下標刪除數據                                                                                                                                    60 datatype delete_byid_seqList(SeqList* list,int x)                                                                                                     61 {                                                                                                                                                     62     int i;                                                                                                                                            63     datatype num;//先定義一個變量用來存儲要被刪除的數據,以免被覆蓋                                                                                   64     if(x<0 || x>=list->pos)                                                                                                                           65     {                                                                                                                                                 66         printf("刪除失敗!\n");                                                                                                                       67     }                                                                                                                                                 68     num=list->data[x];                                                                                                                                69     for(i=x;i<list->pos-1;i++)//先找到要刪除的下標位置,將后面的數據往前移                                                                            70     {                                                                                                                                                 71         list->data[i]=list->data[i+1];                                                                                                                72     }                                                                                                                                                 73     list->pos--;//數據被刪除了,所以要將pos-1                                                                                                         74                                                                                                                                                       75     return num;                                                                                                                                       76 }                                                                                                                                                     77 //在順序表尾部刪除數據                                                                                                                                78 datatype delete_seqList(SeqList* list)                                                                                                                79 {                                                                                                                                                     80     if(list->pos<=0)                                                                                                                                  81     {                                                                                                                                                 82     printf("順序表中沒有數據,刪除失敗!\n");                                                                                                         83     }                                                                                                                                                 84     list->pos--;                                                                                                                                      85     return list->data[list->pos];                                                                                                                     86 }                                                                                                                                                     87 //根據下標修改數據                                                                                                                                    88 void updata_byid(SeqList* list,int x)                                                                                                                 89 {                                                                                                                                                     90     if(x>=list->pos||x<0)                                                                                                                             91     {                                                                                                                                                 92         printf("該下標非法,修改失敗!\n");                                                                                                           93         return;                                                                                                                                       94     }                                                                                                                                                 95     printf("請輸入數據>>>\n");                                                                                                                        96     scanf("%d",&list->data[x]);                                                                                                                       97     return;                                                                                                                                           98 }                                                                                                                                                     99 datatype search_byid(SeqList* list,int x)                                                                                                             
100 {                                                                                                                                                     
101     if(x>=list->pos||x<0)                                                                                                                             
102     {                                                                                                                                                 
103         printf("該下標越界!\n");                                                                                                                     
104     }                                                                                                                                                 
105     return list->data[x];                                                                                                                             
106 }                                                                                                                                                     
107 /*                                                                                                                                                    
108  * function:                                                                                                                                          
109  * @param [ in]                                                                                                                                       
110  * @param [out]                                                                                                                                       
111  * @return                                                                                                                                            
112  */                                                                                                                                                   
113 //遍歷順序表                                                                                                                                          
114 void show_seqList(SeqList* list)                                                                                                                      
115 {                                                                                                                                                     
116     int i;                                                                                                                                            
117     if(0==list->pos)                                                                                                                                  
118     {                                                                                                                                                 
119         printf("順序表中沒有數據!\n");                                                                                                               
120     }                                                                                                                                                 
121     for(i=0;i<list->pos;i++)                                                                                                                          
122     {                                                                                                                                                 
123         printf("%d ",list->data[i]);                                                                                                                  
124     }                                                                                                                                                 
125     putchar(10);                                                                                                                                      
126     return;                                                                                                                                           
127 }                                                                                                                                                     
128 void selectdata_seqList(SeqList* list,datatype oldNum,datatype newNum)                                                                                
129 {                                                                                                                                                     
130     int i=0;                                                                                                                                          
131     for(i=0;i<list->pos;i++)                                                                                                                          
132     {                                                                                                                                                 
133         if(list->data[oldNum]==list->data[i])                                                                                                         
134         {                                                                                                                                             
135             list->data[newNum]=list->data[oldNum];                                                                                                    
136         }                                                                                                                                             
137     }                                                                                                                                                 
138     printf("更新完成!\n");                                                                                                                           
139     return;                                                                                                                                           
140                                                                                                                                                       
141 }                                                                                                                                                     
142 int  selectidx_bydata_seqList(SeqList* list,datatype num)                                                                                             
143 {                                                                                                                                                     
144     int i=0;                                                                                                                                          
145     for(i=0;i<list->pos;i++)                                                                                                                          
146     {                                                                                                                                                 
147         if(num==list->data[i])                                                                                                                        
148         {                                                                                                                                             
149             return i;                                                                                                                                 
150         }                                                                                                                                             
151     }                                                                                                                                                 
152     return -1;                                                                                                                                        
153 }                                                                                                                                                     

頭文件:

 #ifndef __FUNC_H__                                                              #define __FUNC_H_                                                               #define N 100  //順序表的容量                                                   typedef int datatype;                                                           typedef struct//由于需要同時返回順序表及其下標位置,所以定義一個結構體          {                                                                               datatype data[N];    //定義一個順序表                                       int pos;        //記錄下標位置                                              }SeqList;                                                                       SeqList* create_seqList();                                                      void insert_seqList(SeqList* list,datatype num);                                void show_seqList(SeqList* list);                                               datatype delete_seqList(SeqList* list);                                         void insert_byid_seqList(SeqList *list,datatype num,int n);                     datatype delete_byid_seqList(SeqList* list,int x);                              void updata_byid(SeqList* list,int x);                                          datatype search_byid(SeqList* list,int x);                                      int  selectidx_bydata_seqList(SeqList* list,datatype num);                      #endif                                                                          

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/697795.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/697795.shtml
英文地址,請注明出處:http://en.pswp.cn/news/697795.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SpringBoot集成Mqtt發送消息

1. MQTT簡介 MQTT是一種物聯網消息協議&#xff0c;為Message Queuing Telemetry Transport的縮寫&#xff0c;即消息隊列傳輸探測&#xff0c;協議基于發布訂閱模式進行通信&#xff0c;有開銷低、帶寬小、輕量的特點&#xff0c;通常應用在物聯網數據采集、移動應用、智能硬…

H5獲取手機相機或相冊圖片兩種方式-Android通過webview傳遞多張照片給H5

需求目的&#xff1a; 手機機通過webView展示H5網頁&#xff0c;在特殊場景下&#xff0c;需要使用相機拍照或者從相冊獲取照片&#xff0c;上傳后臺。 完整流程效果&#xff1a; 如下圖 一、H5界面樣例代碼 使用html文件格式&#xff0c;文件直接打開就可以展示布局&#…

BGP-OSPF防環機制

一、BGP 防環機制 1、AS內部防環&#xff1a;通過IBGP水平分割&#xff0c;IBGP水平分割的基本思想是 不把從IBGP鄰居學到的路由信息發送給其他IBGP鄰居&#xff1b; 2、AS間的防環&#xff1a;通過屬性AS-PATH來實現&#xff0c; 基本思想是&#xff1a;記錄經過的路徑&…

【每日一題】2583. 二叉樹中的第 K 大層和-2024.2.23

題目: 2583. 二叉樹中的第 K 大層和 給你一棵二叉樹的根節點 root 和一個正整數 k 。 樹中的 層和 是指 同一層 上節點值的總和。 返回樹中第 k 大的層和(不一定不同)。如果樹少于 k 層,則返回 -1 。 注意,如果兩個節點與根節點的距離相同,則認為它們在同一層。 示…

canvas水波紋效果,jquery鼠標水波紋插件

canvas水波紋效果&#xff0c;jquery鼠標水波紋插件 效果展示 jQuery水波紋效果&#xff0c;canvas水波紋插件 HTML代碼片段 <div class"scroll04wrap"><h3>發展歷程</h3><div class"scroll04"><p>不要回頭&#xff0c;一…

前端工程Bem架構及其封裝

文章目錄 簡介語法在vue3項目中引用sass創建bem.scss文件修改vite.config.tsvue文件中使用結果 這是我學習記錄的筆記&#xff0c;如有不正&#xff0c;歡迎補充 簡介 首先認識一下什么是bem架構&#xff1f;BEM的意思就是塊&#xff08;block&#xff09;、元素&#xff08;e…

【DDD】學習筆記-發布者—訂閱者模式

在領域設計模型中引入了領域事件&#xff0c;并不意味著就采用了領域事件建模范式&#xff0c;此時的領域事件僅僅作為一種架構或設計模式而已&#xff0c;屬于領域設計模型的設計要素。在領域設計建模階段&#xff0c;如何選擇和設計領域事件&#xff0c;存在不同的模式&#…

nginx-ingress-controller組件中Nginx的版本升級

參考鏈接&#xff1a;https://blog.csdn.net/qq_22824481/article/details/133761302 https://blog.csdn.net/mengfanshaoxia/article/details/127155020 https://blog.csdn.net/weixin_39961559/article/details/87935873 概要 業務區k…

JAVAEE初階 JVM(一)

JVM的熱門話題 一. JVM中的內存區域劃分1.經典筆試題. 二. JVM的類加載機制 一. JVM中的內存區域劃分 1.經典筆試題. 二. JVM的類加載機制

wondows10用Electron打包threejs的項目記錄

背景 電腦是用的mac&#xff0c;安裝了parallels desktop ,想用electron 想同時打包出 蘋果版本和windows版本。因為是在虛擬機里安裝&#xff0c;它常被我重裝&#xff0c;所以記錄一下打包的整個過程。另外就是node生態太活躍&#xff0c;幾個依賴沒記錄具體版本&#xff0…

lora網關智慧工廠三色燈安燈狀態采集鋇錸技術S281

LoRa網關結合鋇錸技術S281模塊在智慧工廠三色燈安燈狀態采集方面具有廣泛的應用前景。智慧工廠的安全生產管理對于企業生產經營至關重要&#xff0c;而三色燈安燈是工廠安全生產管理的重要指示燈&#xff0c;通過LoRa無線通信技術和鋇錸技術S281模塊&#xff0c;可以實現對三色…

android 使用X264編碼視頻

android 使用X264編碼視頻 源碼剛上傳可能審核 源碼下載地址 X264對應部分API介紹 初始化x264_param_t _x264_param new x264_param_t;/*** preset是編碼速度* 可選項"ultrafast", "superfast", "veryfast", "faster", "fa…

使用 package.json 配置代理解決 React 項目中的跨域請求問題

使用 package.json 配置代理解決 React 項目中的跨域請求問題 當我們在開發前端應用時&#xff0c;經常會遇到跨域請求的問題。為了解決這個問題&#xff0c;我們可以通過配置代理來實現在開發環境中向后端服務器發送請求。 在 React 項目中&#xff0c;我們可以使用 package…

MES系統中的手動排產和自動排產-助力生產效率

企業在排產管理中面臨的問題&#xff1a; 大多數的企業在調度排產過程中&#xff0c;都會遇到以下問題。首先是插單非常的多&#xff0c;計劃調整困難&#xff0c;會經常性的發生原材料、零部件的備貨不足。計劃按MRP或庫存展示計算出需求后將產生大量工單&#xff0c;這些工單…

《劍指Offer》筆記題解思路技巧優化_Part_6

《劍指Offer》筆記&題解&思路&技巧&優化_Part_6 &#x1f60d;&#x1f60d;&#x1f60d; 相知&#x1f64c;&#x1f64c;&#x1f64c; 相識&#x1f622;&#x1f622;&#x1f622; 開始刷題&#x1f7e1;1.LCR 168. 丑數—— 丑數&#x1f7e2;2. LCR 16…

Kubernetes服務網絡Ingress網絡模型分析、安裝和高級用法

文章目錄 1、Ingres簡介2、Ingres網絡模型分析3、安裝Ingress4、使用4.1、搭建測試環境4.2、域名訪問4.3、路徑重寫&#xff08;高級用法&#xff09;4.4、流量限制&#xff08;高級用法&#xff09; 5、總結 1、Ingres簡介 Ingress翻譯過來是“入口”的意思&#xff0c;也就是…

切換分支時候IDEA提示:workspace associated with branch feature has been restored

切換分支時候IDEA提示&#xff1a;workspace associated with branch feature has been restored 這個消息是指與"feature"分支關聯的工作區已經恢復。在Git中&#xff0c;工作區是指你當前正在進行修改和編輯的文件和目錄。當你切換分支時&#xff0c;Git會自動將工…

配置docker 支持GPU方法(Nvidia GPU)

參考官方文檔&#xff1a; https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html 系統版本&#xff1a;ubuntu 23.04 執行腳本如下&#xff1a; 1.Configure the production repository: curl -fsSL https://nvidia.github.io/lib…

怎么把試卷圖片轉換成word?這4種方法一看就會

怎么把試卷圖片轉換成word&#xff1f;在數字化日益盛行的今天&#xff0c;我們常常會面臨將紙質試卷或圖片中的試卷內容轉化為Word文檔的需求。無論是為了對試卷內容進行編輯、修改&#xff0c;還是為了在線共享、遠程教學&#xff0c;將圖片轉換為Word文檔都成為了至關重要的…

集成TinyMCE富文本編輯器

若依的基礎上集成TinyMCE富文本編輯器 前端bootstrap TinyMCE官網鏈接 TinyMCE所需靜態資源下載鏈接 開源項目-若依鏈接 將TinyMCE靜態資源包放入項目中&#xff1b; 代碼引入css&#xff1a; <!-- 引入TinyMCE CSS --><link th:href"{/ajax/libs/tinymce/j…