資料結構 順序表

2021-08-17 14:06:46 字數 1006 閱讀 2608

從資料的基本儲存知,在記憶體中乙個物件的儲存由4位元組的儲存位址和物件本身決定的,那麼乙個列表在記憶體中是如何儲存的呢,列表本身又是乙個物件,為什麼lis[0],lis[1],lis[2]分別就能找到對應的儲存數值呢?在列表的儲存物件,

由上圖可知,在物件類表列表本身位址是連續的,而且間隔就是儲存乙個位址,就想生活中買鞋部的櫃檯一樣,鞋與鞋的位置是連續的,但是鞋的位置可以放置不同品牌的鞋,第一次尋找lis[0]時,在列表lis中無需偏移第二次lis[1]時,因為每個位址佔4個位元組,因此偏移4個位元組即可達到第二個數值。

另外列表中物件本身也是有乙個儲存位址的,列表中儲存的本身就是物件的位址,可通過如下實驗證明:

[python@centos7 325]$cat 1.py 

#!/bin/python3

#-*- coding: utf-8 -*-

lis = [0,1,2,[3,4]]

print(id(lis))

print(id(lis[0]))

print(id(lis[1]))

print(id(lis[2]))

print(id(lis[3]))

print(id(lis[3][0]))

print(id(lis[3][1]))

執行結果如下:

[python

@centos7

325]$./1.py

140446888318920

9181952

9181984

9182016

140446888319112

9182048

9182080

由此可知列表在記憶體中具體操作了,如向列表中新增資料,需要系統在記憶體中重新申請資源,而且不一定連續,資料內容放置好後將位址更新至列表物件之

資料結構 順序表

順序表的特徵 1由唯一的表名標識 2佔據一塊連續的儲存空間 3資料順序存放,元素之間有先後關係 定義動態的順序表 define maxsize 100 typedef struct sqlist 這個結構體型別存放的是順序表的資訊和順序表的資料 初始化順序表 void initsqlist sqli...

資料結構 順序表

順序表示最簡單的乙個資料結構,直接貼 吧,因為比較簡單。include include typedef struct sqlist sqlist void initlist sqlist l l length 0 void getelem sqlist l 初始化 l length j printf...

資料結構順序表

include include include include include include include include include include include include include include using namespace std define maxn 100000...