C转到循环中链表的开头
嗨,我有一个链表,定义如下C转到循环中链表的开头,c,linked-list,C,Linked List,嗨,我有一个链表,定义如下 struct process { int a; struct process *next; }; typedef struct process node; 我有两个节点,比如说4和5 我想要一个循环,它遍历链表并将每个节点递减1,直到其为0 有什么建议吗 我有: do { if (arrivalTime->next == NULL) {
struct process
{
int a;
struct process *next;
};
typedef struct process node;
我有两个节点,比如说4和5
我想要一个循环,它遍历链表并将每个节点递减1,直到其为0
有什么建议吗
我有:
do
{
if (arrivalTime->next == NULL)
{
// printf("A is: %d \n", arrivalTime->a);
printf("-- ");
break;
}
else
{
// printf("A is: %d \n", arrivalTime->a);
printf("-- ");
arrivalTime->a--;
arrivalTime = arrivalTime->next;
}
//arrivalTime = start;
} while(1);
我只能让循环运行一次。我建议您编写一个循环,并将每个节点递减1,如果有具体问题,请回到这里询问一个问题,如果您有两个节点,则循环运行正常。
arrivalTime->a=arrivalTime->a--代码>应该是到达时间->a--代码>。谢谢你,leeduhem。如果它是一个n节点loopAvoiddo{…}while(…)代码>只要可能;最好在循环的顶部进行测试(如果可能,应该避免无限循环,而底部测试的无限循环从来都不是一个好主意)。您当然可以在这里这样做(while(arrivalTime!=NULL){…比您当前拥有的更简单的代码…}
)。
arrivalTime = start;
while(arrivalTime == NULL)
{
arrivalTime->a--;
printf("A is: %d \n", arrivalTime->a);
arrivalTime = arrivalTime->next;
}