順序表

一、數據是如何在內存中存儲的?

32位系統中char,int型數據在內存中的存儲方式:

  • char占1byte(8bit)
  • int占4byte(32bit)

假設我們有一個int類型的值,它從0x01開始,一個int占據4個字節,則其結束于0x04。

二、數據類型有什么意義?

它確定了一個特定類型的數據到底要申請多大的內存地址來存儲數據,并且決定取到的二進制數應該如何解釋。

三、同類型的數據在內存中是如何連續存儲的?

假設有一個四個數的集合 1、20、300、4000,將它們連續地存儲在一起時,在內存里的表現就像是它們緊挨著擠在一起。如果第一個元素從0x01開始,那整個集合就在0x16結束。代表集合的變量指向集合的開始地址0x01,因為一個int類型數據占據4個字節,所以第一個元素就是存儲在0x01-0x04的內存地址中,以此類推,就可以得到其他元素。

這種叫做:順序表的基本布局

四、不同類型的數據集合在內存中是如何存儲的?

當不同的元素要存儲一個集合里時,用偏移量定位獲取每個元素就靠不住了,因為不用數據類型在內存中占用的空間(字節)是不同的。

假設集合里有10、"a"、20、"b" 這四個元素,這時就不能采用上面那種連續存儲布局;而是,它們分散存儲在不同的地方。這時,就可以申請一塊4個元素大小的連續內存區域,里面存的就是對應的元素的內存地址。

這種叫做:元素外置的順序表

五、順序表在內存中的結構

要在內存中給集合開辟一塊區域,先要確定集合大小(容量)。另外,確定區域后,還要知道當前已經占用了幾個元素,一旦溢出,就需要重新申請更大的空間。

要表達這種結構,有兩種實現方式:

圖a是一體式結構:存儲表信息與元素存儲區信息安排在一塊存儲區里
圖b是分離式結構:表對象里只保存于整個表有關的信息(容量和元素個數),實際數據元素存放在另一個獨立的元素存儲區里,通過指針鏈接

二者區別:
如果增加元素超過了列表的最大存儲量時,則需要新建一個數據區.。
一體式結構若想更換數據區,則要整體更改;而分離式結構則只需要更改表信息區中的數據區鏈接地址即可,即該順序表對象不變。

六、順序表擴充

線性擴充:每次擴充增加固定數目的存儲位置,節省空間,操作次數多(以時間換空間)。

倍數擴充:浪費空間(以空間換時間),操作次數少,推薦。

?

轉載于:https://www.cnblogs.com/believepd/p/10766017.html

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

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

相關文章

Establishing SSL connection without server's identity verification is not recommended.

完全描述:Establishing SSL connection without servers identity verification is not recommended. According to MySQL 5.5.45, 5.6.26 and 5.7.6 requirements SSL connection must be established by default if explicit option isnt set. For compliance with existing …

四元素的真面目..........簡單粗暴

作者:Yang Eninala 鏈接:https://www.zhihu.com/question/23005815/answer/33971127 來源:知乎 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。 根據我的理解,大多數人用漢密爾頓四元數就只…

2.自定義變量調節器

① 使用registerPlugin()方法來擴充變量調節器 該方法接收3個參數 1. 字符串modifier 2. 插件函數的名字 3. PHP回調函數 示例:自定義一個變量調節器,可以改變文字的顏色和大小 第一步:調用smarty對象的registerPlugin(&#x…

SpringBoot2構建基于RBAC權限模型的駕校代理小程序后端

本項目是使用SpringBoot2構建的一套基于RBAC權限模型的后臺管理系統,前端是微信小程序。 項目地址: github.com/fuyunwang/D… 項目的緣由 最近接了個外包,主要是針對于駕校開發一個代理小程序。目的是為了方便駕校的管理來招攬學員,同時方便維護學員和代理信息。 項…

while read line的問題

循環中的重定向或許你應該在其他腳本中見過下面的這種寫法&#xff1a;while read linedo…done < file剛開始看到這種結構時&#xff0c;很難理解< file是如何與循環配合在一起工作的。因為循環內有很多條命令&#xff0c;而我們之前接觸的重定向都是為一條命令工作的。…

Linemod;理解

Linemod 代碼筆記 2019年03月11日 16:18:30 haithink 閱讀數&#xff1a;197 最近了解到 Linemod 這個模板匹配算法&#xff0c;印象不錯 準備仔細學習一下&#xff0c;先做點代碼筆記&#xff0c;免得后面不好回顧 目前的筆記基本上把 核心流程都分析得比較清楚了&#xff0…

Swift3中數組創建方法

轉載自&#xff1a;http://blog.csdn.net/bwf_erg/article/details/70858865 數組是由一組類型相同的元素構成的有序數據集合。數組中的集合元素是有 序的&#xff0c;而且可以重復出現。 1 數組創建 在Swift語言中&#xff0c;數組的類型格式為&#xff1a; Array<ElementT…

BZOJ 5249: [2018多省省隊聯測]IIIDX(貪心 + 線段樹)

題意 這一天&#xff0c;\(\mathrm{Konano}\) 接到了一個任務&#xff0c;他需要給正在制作中的游戲 \(\mathrm{《IIIDX》}\) 安排曲目 的解鎖順序。游戲內共有\(n\) 首曲目&#xff0c;每首曲目都會有一個難度 \(d\) &#xff0c;游戲內第 \(i\) 首曲目會在玩家 Pass 第 \(\lf…

手眼標定

Eye-in-hand和Eye-to-hand問題求解和實驗 2018年12月07日 00:00:40 百川木易 閱讀數 3018 2018/12/5 By Yang Yang&#xff08;yangyangipp.ac.cn&#xff09; 本文所有源碼和仿真場景文件全部公開&#xff0c;點擊Gitee倉庫鏈接。 文章目錄 問題描述Eye-in-hand問題求解公式…

RNN總結

RNN既可以表述為循環神 經網絡&#xff08;recurrent neural network&#xff09;&#xff0c;也可以表述為遞歸神經網絡&#xff08;recursive neural network&#xff09;&#xff0c;前者一般用于處理以時間序列為輸入的問題&#xff08;比如把一個句子看成詞組成的序列&…

Problem 2. number題解

number&#xff1a;數學二分圖匹配 首先&#xff0c;如果S<N,那么S1&#xff0c;S2...N這些數直接放在S1,S2...N的位置上(如果其他數x放在這些位置上面&#xff0c;這些數不放在對應位置&#xff0c;那么x一定能放在這些數放的位置&#xff0c;所以直接交換即可)所以可以直接…

SSD列子

一、介紹 本博文主要介紹實現通過SSD物體檢測方式實現工件裂紋檢測。裂紋圖像如下所示&#xff1a; 二、關于SSD算法 具體算法不再闡述&#xff0c;詳細請參考&#xff1a; https://blog.csdn.net/u013989576/article/details/73439202 https://blog.csdn.net/xiaohu2022/arti…

linux硬鏈接與軟鏈接

Linux 系統中有軟鏈接和硬鏈接兩種特殊的“文件”。 軟鏈接可以看作是Windows中的快捷方式&#xff0c;可以讓你快速鏈接到目標檔案或目錄。 硬鏈接則透過文件系統的inode來產生新檔名&#xff0c;而不是產生新檔案。 創建方法都很簡單&#xff1a; 軟鏈接&#xff08;符號鏈接…

int轉時間

int轉時間 public static string FormatDuration(int duration) { if (duration 0) return "00:00:00"; int hours duration / 3600; int minutes duration % 3600 / 60; int seconds duration % 3600 % 60; string _hours hours.ToString("00") &qu…

企業級區塊鏈現狀研究報告:小企業的投資總額是大企業的28倍

根據企業級區塊鏈現狀研究報告表明&#xff0c;當前企業采用區塊鏈技術的勢頭正在逐步增強。參與該報告的企業表示&#xff0c;區塊鏈投資今年共增長了 62% &#xff0c;預計到 2025 年區塊鏈將成為主流技術。其中&#xff0c;有 28% 的企業正在積極開展區塊鏈發展計劃。現在看…

特征匹配

Python 使用Opencv實現圖像特征檢測與匹配 2018-06-13 11:36:58 Xy-Huang 閱讀數 19203更多 分類專欄&#xff1a; Python 人工智能 版權聲明&#xff1a;本文為博主原創文章&#xff0c;遵循 CC 4.0 BY-SA 版權協議&#xff0c;轉載請附上原文出處鏈接和本聲明。 本文鏈接…

bzoj 1015 并查集

代碼&#xff1a; //這題可以反著想&#xff0c;把要去掉的點倒著處理變成往圖中一個一個的加點&#xff0c;然后用并查集處理聯通快就好了。 #include<iostream> #include<cstdio> #include<cstring> #include<vector> using namespace std; const in…

頁面中切換echarts主題

要做的效果是&#xff1a;點擊下拉框切換echarts主題 下面是效果圖&#xff1a; 項目環境&#xff1a; vue ts es6 echarts(4.2.1) 步驟 安裝依賴&#xff0c; npm install echarts -S / yarn add echarts -S引入主題 參考鏈接選擇下拉框中的主題時&#xff0c;拿到圖表主題…

畫極線

OpenCV學習日記5 2017-05-27 10:44:35 1000sprites 閱讀數 2339更多 分類專欄&#xff1a; 計算機視覺 版權聲明&#xff1a;本文為博主原創文章&#xff0c;遵循 CC 4.0 BY-SA 版權協議&#xff0c;轉載請附上原文出處鏈接和本聲明。 本文鏈接&#xff1a;https://blog.cs…

Win10開啟Administrator超級管理員賬戶

方法1 1、在系統的開始菜單上&#xff0c;我們單擊鼠標右鍵&#xff0c;然后選擇計算機管理打開進入 2、打開的計算機管理窗口&#xff0c;點擊本地用戶和組中的用戶打開&#xff0c;然后點擊右側的Administrator賬戶&#xff0c;雙擊鼠標打開進入 3、打開的屬性窗口中&#xf…