資料結構之順序表(java版)

2021-07-24 04:47:10 字數 1938 閱讀 3228

要點:

順序表:採用順序儲存結構的線性表

順序儲存結構和鏈式儲存結構不同,強調的是儲存元素在實體地址儲存的上連續!可實現隨機訪問(只要知道第乙個元素的記憶體位址,再通過簡單的加減就能找到任意乙個元素了)

順序表耗時在對移動元素上,進行插入、刪除時都需要移動元素

本人做順序表的難點主要在於對順序表進行插入時,需要多乙個儲存位,同時又要儲存原來的資料 ,詳情請看2的insert(int i, object x)方法。

1、建立介面mylist

主要實現了增、刪、改、查

inte***ce

mylist

2、seqlist類 實現介面

public

class

seqlist

implements

mylist

@override

public

boolean

isempty() else

}@override

public

intsize()

@override

public object get(int i)

if (i < 0 || i > this.length)

return element[i - 1];

}@override

public

void

set(int i, object x)

element[i]=x;

}@override

public

void

insert(int i, object x)

//用param暫時儲存element的值

object param = this.element;

// 由於插入 需要多乙個儲存位 同時長度加1

element = new object[++length];

for (int j = 0; j < param.length; j++)

//插入處向後挪一位

for (int j = element.length - 1; j > i; j--)

element[i] = x;

}@override

public

void

remove(int i)

for (int j = i+1; j 1]= element[j];

}length--;

}@override

public

void

clear()

@override

public string tostring()

string str = "";

for (int i = 0; i < length; i++)

return str;

}public

static

void

main(string args) );

system.out.println("raw :"+sl);

sl.insert(1, "insert");

system.out.println("insert :" + sl);

sl.remove(2);

system.out.println("remove :" + sl);

system.out.println(sl.get(3));

sl.set(2, "set");

system.out.println("remove :" + sl);}}

java資料結構之順序表

1.順序表中按位置隨機訪問的時間複雜度為o 1 2.順序表中的在給定位置插入或者刪除需要移動差不多一半的以上的元素,所以時間複雜度為o n 3.儲存密度 資料占用的儲存量 整個結點占用的儲存量。根據這個公式可以得出順序表的儲存密度為1 所以可以得出以下結論 線性表一般作為查詢頻繁,插入或者刪除比較少...

資料結構之順序表 C 版

include include define maxlistsize 100 預設的儲存空間最大容量 using namespace std typedef string elemtype typedef structsqlist 俗稱順序表 void initlist sqlist l void ...

資料結構(一) 順序表的實現 java版

順序表的方法介面定義 package com.cn.hbut.dao author wickedvalley description 線性表的介面定義 public inte ce definelist 順序表的具體實現 package com.cn.hbut.daoimpl import com....