順序表的增刪查改

2021-10-14 08:06:56 字數 3892 閱讀 1088

順序表實現

順序表是用一段實體地址連續的儲存單元依次儲存的線性結構,一般情況下採用陣列儲存。在陣列上完成資料的增刪查改。

靜態順序表:使用定長陣列儲存

動態順序表:使用動態開闢的陣列儲存

靜態順序表適用於確定知道需要存多少資料的場景。

靜態順序表的定長陣列導致n定大了,空間開多了浪費,開少了不夠用。

首先得給定乙個順序表的長度,假如你要給列表插入元素,我們得先給0號位置插第乙個數,如果0號位置沒有數,我們不能直接插在1號位置或是更後邊。如果0,1,2號位置都有資料,我們要往0號或1號位置插的話,這個時候得倒著遍歷順序表,讓前邊的資料往後挪一步。

//也可以往進傳大小

public

seplist

(int ret)

//增加資料 得傳要插入的位置與對應位置的資料 就比如0號位置插10

public

void

addval

(int pos,int val)

//此時在給定位置插資料

this

.val[pos]

= val;

this

.size++;}

//列印鍊錶

public

void

display()

system.out.

println()

;//列印完後空行

}public

static

void

main

(string[

] args)

}//執行結果

10如果要插入多個資料則呼叫方法即可比如:

mylist.

addval(0

,10);

//第一次插入

mylist.

addval(1

,20);

mylist.

addval(2

,30);

mylist.

addval(3

,40);

mylist.

addval(4

,50);

mylist.

display()

;//列印

//執行結果

1020

3040

50

此時順序表已滿 如果再往進插入呢

mylist.

addval(0

,10);

//第一次插入

mylist.

addval(1

,20);

mylist.

addval(2

,30);

mylist.

addval(3

,40);

mylist.

addval(4

,50);

mylist.

addval(5

,60);

mylist.

addval(6

,70);

mylist.

display()

;//列印

//執行結果

1020

3040

50

為啥還是原來的,也沒有報錯。是因為進入add函式在判斷順序表為滿時,如果滿了,直接跳出到列印函式。並不會報錯。此時增函式就寫好了。

//判定鍊錶是否包含某個元素

public boolean contains

(int tofind)

}return

false;}

//查詢某個元素對應的位置

public int search

(int tofind)

}return-1

;}//獲取pos位置的資料

public int getpos

(int pos)

}return-1

;}//呼叫方法 在這沒有貼上主函式 你們一定要加上

boolean flag1 = mylist.

contains(10

);//判定元素

boolean flag2 = mylist.

contains(60

);system.out.

println

(flag1)

; system.out.

println

(flag2)

; int ret = mylist.

search(10

);//查詢

int ret1 = mylist.

search(50

);system.out.

println

(ret)

; system.out.

println

(ret1)

; int ret2 = mylist.

getpos(0

);//獲取pos位置資料

int ret3 = mylist.

getpos(4

);system.out.

println

(ret2)

; system.out.

println

(ret3)

;//執行結果

true

false04

1050

直接找到pos位置對應的資料,將新資料賦給它就好了

//修改pos位置的值

public

void

remove

(int pos,int val)

else

} mylist.

remove(2

,3);

//2號位置改為3

mylist.

remove(3

,4);

//3號位置改為4

mylist.

display()

;//列印

//執行結果

102034

50

刪除指定的資料後,後邊的資料往前覆蓋就可以了

//刪除元素

public

void

delval

(int key)

}//刪除該位置資料,後邊資料往前覆蓋

for(i = j; i <

this

.size -

1; i++

)this

.size--;}

mylist.

delval(10

);mylist.

delval(50

);mylist.

display()

;//列印

//執行結果

2030

40

順序表的增刪查改

今天來實現簡單的順序表地增刪查詢操作 1.在開始敲 前,首先要明確自己要幹嘛。2.然後開始構思自己所要實現什麼樣的功能。3.之後將之前構思的功能弄好框架。4.最後再將每個框架的內容補充上。標頭檔案 include pragma once include typedef int sldatatype ...

實現順序表的增刪查改

線性表分為兩種 順序表 順序儲存 和鍊錶 鏈式儲存 這裡實現一下順序表管理資料的增刪查改操作 標頭檔案自定義標頭檔案中一般存放自定義函式的函式宣告 sqlist.h pragma once include include include typedef int sqldatatype typedef...

實現對順序表的增刪查改

線性表 連續儲存 線性表是n個具有相同特性的資料元素的有限序列.線性表是一種在實際中廣泛使用的資料結構,常見的線性表 順序表,鍊錶,棧,佇列,字串 線性表在邏輯上是線性結構,也就是說是連續的一條直線,但是在物理結構上並不一定是連續的,線性表在物理上儲存時,通常以陣列和鏈式結構的形式儲存 順序表 以陣...