順序表邏輯

2022-08-29 23:48:45 字數 1854 閱讀 4854

一,邏輯體系

1.順序表屬於線性表的一種,它沒有分支,資料元素在邏輯上與儲存上彼此相鄰

2.想在計算機中儲存資料的話,我們首先得有一塊記憶體空間,這是合乎邏輯的。

#define maxsize 100

3.有了儲存空間,我們就開始在上面構建我們的物件——順序表,首先給它下定義

typedef int elemtype; 

typedef structsqlist;

解釋下,我們對資料表下定義,它的屬性有:<1>處理的資料,elemtype<2>順序表的長度,length

對int進行typedef可以有更好的**規範,日後我們用該資料結構處理其他資料的時候,修改此處typedef即可。

對struct進行typedef,emmm,sqlist已經是我們定義的新資料型別了,這樣的話,我們書寫**時會感覺更合邏輯一些。

為什麼elem是指標呢?這個是動態分配,elem指向線性表的首位址,因為記憶體空間是連續的,所以取指elemtype的指標就可以代表我們處理的那塊記憶體空間的資料。

這兒思考好兩個問題就理解好了,有了記憶體空間後我們該幹什麼?定義順序表需要什麼屬性?

好了,順序表的定義完備了,接下來,該定義它的各種操作了,這也很自然,向量空間也由向量及向量間的相互運算構成。

從對它的操作思考的話,應該有:初始化,建立,新增,刪除,查詢,

而查詢對於乙個資料元素來說,有關於自身數值的查詢,有關於自身位序的查詢兩種方式

接下來,看我操作

4.初始化

bool initlist(sqlist &l)

初始化麼,肯定對資料型別內部屬性初始化,一是看怎麼儲存,儲存在哪,儲存成功了嗎,二是看長度如何,這很顯然。

5.建立

反正操作肯定沒法離開那倆屬性,圍繞著它們展開討論準沒錯

首先,資料是我們輸入的,但凡輸入必定有窮,結束的情況有兩種,正常結束,非正常結束。所以我們設定兩種結束的條件,一是記憶體空間不夠非正常結束,二是我們自己設定條件正常結束。其次,我們輸入變數肯定是動態輸入,得有乙個迴圈變數i,還得有乙個儲存我們輸入資料的變數x。

bool createsqlist(sqlist &l)

cin>>x;

l.elem[i++]=x;

l.length++;

}return true;

}6.取值,取第幾個值,能取到嗎,好像該思考的就這兩個問題

bool getelem(sqlist l,int i,int &e)

7.查詢,查詢哪個值,這個沒什麼,從第乙個數值開始遍歷即可

int locateelem(sqlist l,int e)

時間複雜度,最好情況下第乙個就是我們要找的,為o(1),最壞情況下為o(n),然後平均時間複雜度為,我們要找的數在該位置的概率✖尋找到該位置所需的次數求和,也為o(n)

8.插入,在哪個位置插入,可以插嗎,怎麼插,應該想清楚這幾個問題

最重要的就是怎麼插,首先選定位置,位置合法,則想辦法把位置空出,該位置後資料元素均向後移乙個單位,從最後一位開始移

bool insertelem(sqlist &l,int i,int e)

分析下複雜度,每次插入移動n-m+1個資料元素,老規矩,操作次數✖發生該操作的概率為平均時間複雜度,經計算得平均時間複雜度o(n)

9.刪除,先看要刪的那個位置是否合法,再看刪誰,刪的元素要保留另外在乙個地方備用嗎?(備胎?!)

bool  deletsqlist(sqlist &l,int i,int &e)

小伙精神在,在哪也是實力派

鍊錶結點的物理順序與邏輯順序

已知乙個單向鍊錶各結點在儲存器中的物理順序,以及各結點之間的指向關係,要求輸出該鍊錶各結點的邏輯順序。如圖所示的鍊錶,共有6個結點,按這6個結點在儲存器中的物理順序依次編號為1 6。第1個結點的指標域為p4,表示它指向第4個結點。在該圖中,符號 表示空指標。因此,這個鍊錶6個結點的邏輯順序為 6 1...

順序表 順序表定位

這兩個題本質一模一樣,唯一不同的是本題利用 順序表 將陣列a包裝了起來。在遍歷的過程中,拿順序表的資料去和x比對,若相同,返回當前下標值,若到了最後乙個資料元素都不相同,就返回 1 1.遍歷順序表 2.挨個比對資料元素 prism lang c include const int max 20 設定...

順序表專題 1 順序表

順序表的實現 元素儲存區操作 需求 將一組 通常是同一型別 的幾個資料元素作為乙個整體管理和使用,需要建立這種元素的組,並用變數對他們進行記錄。這樣一組資料的元素個數可能發生變化 因為增刪改查等操作 對於這種需求,最簡單的解決方式是將這組元素視為乙個序列,可以將這個結構抽象為線性表。乙個線性表是某類...