我遇到了一个问题,我尝试在链表上使用 while 循环。我有两个链表,即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;