字典 順序表 列表 hash樹 實現原理

2021-10-06 12:44:39 字數 2008 閱讀 9515

二. 順序表

三. python 列表(list)

注:字典型別是python中最常用的資料型別之一,它是乙個鍵值對的集合,字典通過鍵來索引,關聯到相對的值,理論上它的查詢複雜度是 o(1)

缺點:

特點:

順序表增刪改查原理:

# 1、順序表的初始化

順序表的初始化就是把順序表 初始化為空的順序表;只需把順序表的長度length置為0即可;

# 2、求順序表的長度

順序表的長度就是就順序表中的元素的個數,由於在插入和刪除操作中都有對資料表的長度進行修改,所以求表長只需返回length的值即可;

# 3、按序號查詢

查詢順序表中第i個元素的值(按序號查詢),如果找到,將將該元素值賦給e。

查詢第i個元素的值時,首先要判斷查詢的序號是否合法,如果合法,返回第i個元素對應的值。

# 4、插入元素

在資料表的第i個位置插入元素,在順序表的第i個位置插入元素e

首先將順序表第i個位置的元素依次向後移動乙個位置,然後將元素e插入第i個位置,移動元素要從後往前移動元素,

即:先移動最後乙個元素,在移動倒數第二個元素,依次類推;

插入元素之前要判斷插入的位置是否合法,順序表是否已滿,在插入元素之後要將表長l-

>length++;

# 5、刪除操作

刪除表中的第i個元素e,刪除資料表中的第i個元素,需要將表中第i個元素之後的元素依次向前移動一位,將前面的元素覆蓋掉。

移動元素時要想將第i+

1個元素移動到第i個位置,在將第i+

2個元素移動i+

1的位置,直到將最後乙個元素移動到它的前乙個位置。

進行刪除操作之前要判斷順序表是否為空,刪除元素之後,將表長l-

>length--;

# 6、按內容查詢

查詢資料元素e在表中的位置,可以從表頭開始一直遍歷表中元素。

如果找到與要查詢元素e相等的元素,則返回元素在表中的位置,陣列下標從0開始。

則元素在表中對應的位置序號值應為對應陣列下標加1,沒有找到則返回0。

# 7、頭插

頭插,即在表頭插入元素e,在表頭插入元素,需要將表中的元素依次後移一位,

然後將要插入的元素e賦給數字的首元素,執行插入操作後將表長l-

>length++;

需要注意的是移動元素要從順序表的最後乙個元素開始移動,

如果從第1個元素開始移動,會使得第1個元素的值覆蓋第2個元素的值,然後把第二個元素後移則會使第2個元素的值

(原來第1個元素值)覆蓋第3個元素的值,依次類推,最後出插入元素外,其餘元素值均為原順序表中第乙個元素的值。

# 8、頭刪

刪除順序表中的第乙個元素,只要將順序表中的元素從第2個開始,依次向前移動1位,覆蓋原來順序表中元素對應位置的前乙個值

在刪除元素之前要判斷順序表是否為空,刪除順序表元素之後將順序表長度l-

>length--;

# 9、尾插

在順序表表尾插入元素e,l-

>data[l-

>length]

= e;將元素e的值賦給順序表中最後乙個元素的下乙個元素;

尾插操作,需要判斷順序表是否已滿,尾插後將順序表長度l-

>length++;

# 10、尾刪

刪除表尾元素,只需將順序表的長度減1

,類似於出棧操作,棧頂指標top –。

# 11、清空順序表

清空順序表就是將表中的元素刪除。刪除表中的元素只需將表的長度置為0。

# 12、判斷表是否為空

如果順序表的長度為0,則順序表為空,返回1,否則,返回0;

# 13、列印表中元素

依次列印順序表中的元素,如果順序表為空則輸出提示。

c 陣列 陣列列表 列表 foreach

就是多個型別相同的變數,連續地放在記憶體中。c 中陣列宣告為 int a a new int length 與c 的int a length 不同。static void main string args 申請陣列空間並對陣列設定初始值,放在大括號中。a new int 5 陣列宣告之後,可以分配任...

python中的列表,列表的特性

列表中可以存放任意型別的資料 li 1,2,3,5,6,8 li 1,2,3,1,2,3,4 5,7 eg 將0 9這10個數字隨機列表 注 shuffle 方法將序列的所有元素隨機排序。print service 1 列表的反轉 print service 1 除了第乙個之外的其他元素 print...

python整數和列表 列表和整數Python

假設實際縮排如下 specialnum 10 def number move move number for elements in range len move number if specialnum move number 1 x move number.index specialnum y ...