圖的基本操作是獨立於圖的存儲結構的。而對於不同的存儲方法,操作算法的具體實現會有不同的性能。在設計具體算法的實現時,應考慮採用何種存儲方式的算法效率會更高。
圖的基本操作主要包括(僅抽象地考慮,故忽略掉各變量的類型):
Adjacent(G,x,y):判斷圖G是否存在邊<x,y>或(x,y)。
Neighbors(G,x):列出圖G中與結點x鄰接的邊。
InsertVertex(G,x):在圖G中插入頂點x。
DeleteVertex(G,x):從圖中刪除頂點x。
AddEdge(G,x,y):若無向邊(x,y)或有向邊<x,y>不存在,則向圖G中添加該邊。
RemoveEdge(G,x,y):若無向邊(x,y)或有向邊<x,y>存在,則從圖G中刪除該邊。
FirstNeighbor(G,x):求圖G中頂點x的第一個鄰接點,若有則返回頂點號。若x沒有鄰接點或圖中不存在x,則返回-1。
NextNeighbor(G,x,y):假設圖G中頂點y是頂點x的一個鄰接點,返回除y外頂點x的下一個鄰接點的頂點號,若y是x的最後一個鄰接點,則返回-1。
Get_edge_value(G,x,y):獲取圖G中邊(x,y)或<x,y>對應的權值。
Set_edge_value(G,x,y,v):設置圖G中邊(x,y)或<x,y>對應的權值爲v。