java建鄰接鍊錶

2021-08-08 06:08:04 字數 1868 閱讀 4807

建鄰接鍊錶分三部分:

要有乙個總類graph來儲存所有的頭節點

//鄰接表實現圖的建立 

public

class graph

}

這是所有頭節點的類結構

// 鄰接表節點的型別

public

class vertexnode

public

vertexnode(string pname,attraction attraction)

}

之後的每一條邊的類結構

public

class edgenode

這就建立了基本的資料結構,在其中的mylist是自己寫的模板類

介面:

public

inte***ce kmylist

實現:

public

class

mylist

implements

kmylist

//新增至鍊錶末尾

@override

public

void add(object item)

mlist[msize] = item;

msize++;

}//刪除指定元素

@override

public

void remove(int

index)

object newlist = new object[mcurrentcapacity];

system.arraycopy(mlist, 0, newlist, 0, index);

if(index+1

index + 1, newlist, index, msize - index-1);

} mlist = newlist;

msize--;

}/**

* 更新指定元素

*/public

void set(int

index, t item)

mlist[index] = item;

}/**

* 獲得指定元素

*/@suppresswarnings("unchecked")

public t get(int

index)

return (t)mlist[index];

}@override

public

int size()

// 當容量不足時進行擴充

private

void expansion()

//獲取新的容量

private

int getnewcapacity()

}

實現的檔案,這裡我使用了資料庫

public void creategrouph() 

v = g.adjlist

.size();// 初始化頂點數目的資訊

sql = "select * from route"

; stmt = conn.preparestatement(sql);

rs = stmt.executequery();

i = 0

; while (rs.next())

} catch (exception ex) finally

if (stmt != null)

if (conn != null)

} catch (sqlexception e)

}}

鍊錶與鄰接表

對於稀疏圖來說,m要遠遠小於n21 2 3 4 5 6 4 5 1 4 9 4 3 8 1 2 5 2 4 6 1 3 7 第一行兩個整數n m。n表示頂點個數 頂點編號為1 n m表示邊的條數。接下來m行表示,每行有3個數x y z,表示頂點x到頂點y的邊的權值為z。下圖就是一種使用鍊錶來實現鄰接...

鍊錶與鄰接表

鍊錶 陣列是一種支援隨機訪問,但不支援在任意位置插入或刪除元素的資料結構。與之相對應,鍊錶支援在任意位置插入或刪除,但只能按順序依次訪問其中的元素。我們可以用乙個struct 表示鍊錶節點,其中可以儲存任意資料 另外用prev和next兩個指標指向前後相鄰的兩個節點,構成乙個常見的雙向鍊錶結構。為了...

鄰接矩陣 鄰接鍊錶 轉換

include include include graph.h include using namespace std typedef int infotype define maxv 100 最大頂點個數 define inf 32767 inf表示 以下定義鄰接矩陣型別 typedef stru...