【发布时间】:2013-07-31 20:27:07
【问题描述】:
概述:我目前正在尝试编写一个将 AOV 网络图放入链接列表的代码。我是如何遇到麻烦最好的方法来解决这个问题。我在纸上理解图表如何以链表形式表示。
这是我的图表:
我的思考过程/Pusdo 代码如下:
创建一个 Linked-List 类,它只添加节点并为方法打印它们。 然后对于每个边访问数组的索引并转到该链接列表。 那么我的数组将具有 [s,a,d,g,b,e,h,c,f,i,t] ,其中每个字母代表该顶点的 >Linked 列表。因此,如果我想调用 S 顶点,我将不得不调用数组的 >0 元素,这将指向 s Linked-List。在 C++ 中有一个简单的实现吗?
这是我现在的链表类:
class List{
private:
typedef struct node{
char vertex;
node* next;
}* nodePtr;
nodePtr head;
nodePtr curr;
nodePtr temp;
public:
List();
void AddNode(char AddData);
void printList();
};
List::List(){
head = NULL;
curr = NULL;
temp = NULL;
}
void List::AddNode(char AddData){
nodePtr n = new node;
n->next = NULL;
n->vertex = AddData;
if(head != NULL){
curr = head;
while(curr->next != NULL){
curr = curr->next;
}
curr->next = n;
}
else{
head = n;
}
}
void List::printList(){
curr = head;
while(curr != NULL){
cout << curr->vertex << endl;
curr = curr->next;
}
}
任何帮助将不胜感激。
编辑: 可以使用像这样的双链表吗?
【问题讨论】:
-
您不必将所有变量都作为类成员变量。
curr很容易成为成员函数中的局部变量。
标签: c++ graph linked-list