建鄰接鍊錶分三部分:
要有乙個總類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...