リンクされたリストでwhileループを使用しようとすると問題が発生しました。と という 2 つの連結リストがtemp
ありgraph
ます。私はタスクを実行するために while ループを使用していますwhile(temp != NULL)
。各ループで先に進むために、 を割り当てていtemp = temp->link
ます。ただし、このコードはコンパイルされません。再帰関数が解決策になる可能性があることは理解していますが、関数は実際にははるかに複雑であるため、再帰関数はそれほど良い考えではないと思います。ちなみに、graph
はすでにリンクされたリストを作成しています。前もって感謝します!
PS 宿題の一部です。
temp = graph->link;
while(temp!=NULL){
if(stack->link == NULL){
stack->link = (node_pointer)malloc(sizeof(graph));
stack->link->weight = temp->weight;
stack->link->vertex = temp->vertex;
}
temp = temp->link; //Here is the problem.
}
編集:
stack と graph はどちらも連結リストの配列です。
typedef struct node *node_pointer;
struct node{
int vertex;
int weight;
int visited;
struct node *link;
};
node_pointer graph[50];
node_pointer stack[50];
node_pointer temp;