C++ 順序表

順序表的操作有以下:

1 順序表的元素插入

給定一個索引和元素,這個位置往后的元素位置都要往后移動一次,元素插入的步驟有以下幾步

(1)判斷插入的位置是否合法,如果不合法則拋出異常

(2)如果是順序表已滿,則需要擴容順序表,一般是將原有順序表的容量進行倍增

(3)將插入位置之后的元素向后移動,為新元素騰出空間

(4)將新元素插入到指定位置

(5)更新順序表的大小

2 順序表的元素刪除

將對應索引位置元素刪除后,這個位置往后所有元素位置往前移動一次,元素刪除有以下幾步

(1)判斷刪除位置是否合法,如果不合法則拋出異常

(2)如果刪除位置為最后一個元素,則順序表的大小直接-1

(3)如果刪除位置不是最后一個元素,則將刪除位置之后的元素向前移動,覆蓋要刪除的元素

(4)更新順序表的大小

3 順序表的元素查找

找到元素位置,并且返回索引,查找步驟為

(1)遍歷順序表,對順序表中每個元素與指定元素進行比較,如果找到則返回對應索引

(2)如果遍歷完所有元素,都沒有找到對應元素,則返回-1

4 順序表的元素索引

直接即可獲得

5 順序表的元素修改

直接將給定位置改為對應的值

附順序表代碼見下:

#include<iostream>
using namespace std;
#define eleType intstruct SequentialList {eleType* elements;int size;int capacity;
};void initializeList(SequentialList* list, int capacity) {list->elements = new eleType[capacity];list->size = 0;list->capacity = capacity;
}void destoryList(SequentialList* list) {delete[] list->elements;
}int size(SequentialList* list) {return list->size;
}bool isEmpty(SequentialList* list) {return list->size == 0;
}void insert(SequentialList* list, int index, eleType element) {if (index <0 || index > list->size) {throw std::invalid_argument("Invalid index");}if (list->size == list->capacity) {int newCapacity = list->capacity * 2;eleType *newelement = new eleType[newCapacity];for (int i = 0; i < newCapacity / 2; ++i) {newelement[i] = list->elements[i];}delete[] list->elements;list->elements = newelement;list->capacity = newCapacity;}if (list->size < list->capacity) {for (int i = list->size - 1; i > index; --i) {list->elements[i] = list->elements[i - 1];}list->elements[index] = element;list->size++;}}
void deleteElement(SequentialList* list, int index) {if (index < 0 || index >= list->size) {throw std::invalid_argument("Invalid_index");}for (int i = index; i < list->size - 1; ++i) {list->elements[i] = list->elements[i + 1];}list->size--;
}int findElement(SequentialList* list, eleType element) {for (int i = 0; i < list->size; ++i) {if (list->elements[i] == element) {return i;}}return -1;
}eleType getElement(SequentialList* list, int index) {if (index < 0 || index >= list->size) {throw std::invalid_argument("Invalid_index");}return list->elements[index];
}void updateElement(SequentialList* list, int index, eleType value) {if (index < 0 || index >= list->size) {throw std::invalid_argument("Invalid_index");}list->elements[index] = value;
}

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

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

相關文章

mysql安裝starting the server報錯

win10家庭版無法啟動服務的&#xff0c;先不要退出&#xff0c;返回上一欄&#xff0c;然后通過電腦搜索欄輸入服務兩個字&#xff0c;在里面找到mysql80&#xff0c;右鍵屬性-登錄&#xff0c;登錄身份切換為本地系統就行了

萬有的函數關係速成2. 連續和導數

1.討論間斷點類型 定義: 若函數在某點不滿足連續的條件,則該點為間斷點。 第一類間斷點是左右極限都存在的間斷點,其中左右極限相等的是可去間斷點,不相等的是跳躍間斷點; 第二類間斷點是左右極限至少有一個不存在的間斷點,包括無窮間斷點(極限為無窮)和振蕩間斷點…

【專題】2025年我國機器人產業發展形勢展望:人形機器人量產及商業化關鍵挑戰報告匯總PDF洞察(附原數據表)

原文鏈接&#xff1a;https://tecdat.cn/?p39668 機器人已廣泛融入我們生活的方方面面。在工業領域&#xff0c;它們宛如不知疲倦的工匠&#xff0c;精準地完成打磨、焊接等精細工作&#xff0c;極大提升了生產效率和產品質量&#xff1b;在日常生活里&#xff0c;它們是貼心…

用docker在本地用open-webui部署網頁版deepseek

前置條件 用Ollama在本地CMD窗口運行deepseek大模型-CSDN博客文章瀏覽閱讀109次&#xff0c;點贊5次&#xff0c;收藏2次。首次運行需要下載deepseek的大模型包&#xff08;大約5GB&#xff0c;根據本地網速的不同在半個小時到幾個小時之間下載完成&#xff09; &#xff0c;并…

android的DataBinding簡介

Android DataBinding 簡介 DataBinding 是 Android Jetpack 中的數據綁定庫&#xff0c;用于將 UI 組件直接與數據模型綁定&#xff0c;減少模板代碼并實現雙向數據同步。它通過聲明式布局簡化 UI 更新邏輯&#xff0c;常用于 MVVM&#xff08;Model-View-ViewModel&#xff0…

企業如何利用DeepSeek提升網絡安全管理水平

企業可以通過深度整合DeepSeek的AI能力&#xff0c;構建智能化、動態化的網絡安全防御體系&#xff0c;以應對APT&#xff08;高級持續性威脅&#xff09;等復雜攻擊。以下是具體策略與實踐路徑&#xff1a; 1. AI驅動的威脅檢測與分析 多模態威脅狩獵 DeepSeek的深度學習技術能…

DeepSeek-R1 云環境搭建部署流程

DeepSeek橫空出世&#xff0c;在國際AI圈備受關注&#xff0c;作為個人開發者&#xff0c;AI的應用可以有效地提高個人開發效率。除此之外&#xff0c;DeepSeek的思考過程、思考能力是開放的&#xff0c;這對我們對結果調優有很好的幫助效果。 DeepSeek是一個基于人工智能技術…

x小兔鮮vue.js

LayoutFooter.vue <template><footer class"app_footer"><!-- 聯系我們 --><div class"contact"><div class"container"><dl><dt>客戶服務</dt><dd><i class"iconfont icon-kef…

磁盤分區損壞:深度解析與數據恢復策略

一、磁盤分區損壞現象概述 磁盤分區損壞是計算機數據存儲領域的一個常見問題&#xff0c;它通常表現為硬盤上的某個分區無法正常訪問&#xff0c;數據讀寫失敗&#xff0c;甚至整個分區消失。這種損壞可能源于多種因素&#xff0c;不僅影響用戶的正常使用&#xff0c;更可能導…

fetch請求總結,fastadmin中后臺接口強制返回json數據

fetch請求 提交圖片,只支持formData方式,這樣會自動變為multiform方式,而且一般的post大多都可以用這樣的方式來完成請求 const formData new FormData(); formData.append(file, fileInput.files[0]); formData.append(pid, id); formData.append(dc, 1);fetch(/api/common…

Python----Python高級(網絡編程:網絡基礎:發展歷程,IP地址,MAC地址,域名,端口,子網掩碼,網關,URL,DHCP,交換機)

一、網絡 早期的計算機程序都是在本機上運行的&#xff0c;數據存儲和處理都在同一臺機器上完成。隨著技術的發展&#xff0c;人 們開始有了讓計算機之間相互通信的需求。例如安裝在個人計算機上的計算器或記事本應用&#xff0c;其運行環 境僅限于個人計算機內部。這種設置雖然…

k8sollama部署deepseek-R1模型,內網無坑

這是目錄 linux下載ollama模型文件下載到本地,打包遷移到k8s等無網絡環境使用下載打包ollama鏡像非k8s環境使用k8s部署訪問方式非ollama運行deepseek模型linux下載ollama 下載后可存放其他服務器 curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linu…

機器學習基本概念(附代碼)

這里的“機器”指的是計算機軟硬件組織&#xff0c;而非傳統的機械裝置&#xff1b;而“學習”&#xff0c;則是指軟件通過訓練過程&#xff0c;其性能得以提升的過程。 一、算法與模型的關系 在機器學習領域&#xff0c;算法和模型是兩個核心概念。算法是一種偏抽象的概念&a…

前端開發知識梳理 - HTMLCSS

1. 盒模型 由內容區&#xff08;content&#xff09;、內邊距&#xff08;padding&#xff09;、邊框&#xff08;border&#xff09;和外邊距&#xff08;margin&#xff09;組成。 &#xff08;1&#xff09;標準盒模型&#xff08;box-sizing默認值, content-box&#xff…

.NET周刊【1月第4期 2025-01-26】

國內文章 低成本高可用方案&#xff01;Linux系統下SQL Server數據庫鏡像配置全流程詳解 https://www.cnblogs.com/lyhabc/p/18660810/linux-sql-server-database-mirroring-configuration-guide 本文詳細介紹了如何在Linux系統下配置SQL Server數據庫鏡像&#xff0c;以實現…

Nutz Dao與Spring集成

一、集成方式 1、采用Spring的IOC&#xff0c;但是事務還是采用Nutz自己管理控制&#xff1b; 2、采用Spring的聲明式事務管理控制&#xff1b; 二、IOC 直接依據數據源注入即可 Beanpublic NutDao nutz(DataSource dataSource) {return new NutDao (dataSource);;} 此時N…

利用 Python 爬蟲獲取按關鍵字搜索淘寶商品的完整指南

在電商數據分析和市場研究中&#xff0c;獲取商品的詳細信息是至關重要的一步。淘寶作為中國最大的電商平臺之一&#xff0c;提供了豐富的商品數據。通過 Python 爬蟲技術&#xff0c;我們可以高效地獲取按關鍵字搜索的淘寶商品信息。本文將詳細介紹如何利用 Python 爬蟲技術獲…

白嫖RTX 4090?Stable Diffusion:如何給線稿人物快速上色?

大家都知道&#xff0c;在設計的初期&#xff0c;我們通常會先繪制草圖&#xff0c;然后再進行上色處理&#xff0c;最終才開始進行最終的設計工作。在這個上色的過程中&#xff0c;配色是至關重要的一環。這不僅方便了內部同事的評審&#xff0c;也讓產品方和客戶可以直觀地了…

libdrm移植到arm設備

一、環境資源要求 下載libdrm Index of /libdrm 這邊使用的是2.4.114版本&#xff0c;版本太高對meson版本要求也很高&#xff0c;為了省事用apt安裝meson就不用太高版本了&#xff0c;1.x版本雖然使用makefile編譯方便但是太老&#xff0c;對應用支持不太好。 https://dri…

C# 比較兩個List集合內容是否相同

在 C# 中&#xff0c;要比較兩個 List<T> 集合的內容是否相同&#xff0c;可以通過以下幾種方法&#xff1a; 一、非自定義類的元素比較 1. 使用 SequenceEqual 方法&#xff08;順序和內容都相等&#xff09; 順序和內容都相等&#xff1a;使用 SequenceEqual。 usin…