【发布时间】:2018-12-09 13:47:55
【问题描述】:
对于我的程序,我有一堆字符串,我试图弹出顶部的值,但如果堆栈上的下一个字符串具有相同的名称,我也想弹出那个,依此类推,直到所有上面有那个名字的人不见了。我可能正在扼杀实现,所以有人可以指导我朝着正确的方向前进吗?
char *dropoff(struct stack *tosPtr)
{
printf("current tos is %s\n", tosPtr->name);
if(tosPtr == NULL)
return STACK_IS_EMPTY;
while(strcmp(tosPtr->name, tosPtr->next->name) == 0) {
stack *oldBox = tosPtr;
tosPtr = tosPtr->next;
if(oldBox == tosPtr)
tosPtr = NULL;
free(oldBox);
}
return tosPtr;
}
【问题讨论】:
-
我删除了递归标签 - 我猜你不想要递归解决方案,但如果是,请说明。