链接列表结构Push和Pop

时间:2013-07-24 13:02:04

标签: c++ c

我正在努力解决一个要求用户输入数字的程序,如果用户输入0,它只会停止要求用户输入数字。

但是我似乎无法将输入的第二个数字的值放在Data2

我们如何通过输入的用户号码将号码推入datadata2,然后将其总结为数据+数据2和打印总和?

例如,用户输入1,2,0

2 个答案:

答案 0 :(得分:2)

问题在于输入,而不是列表。

尝试输入1 2 0而非1,2,0,您会发现它运作正常。 (您不会得到输出1 + 2 = 3,因为这不是您输出的内容。而是获得The sum of Popped item is 3

BTW,while ( Num !=0)的第一次出现在初始化之前使用Num。如果值恰好为0,则程序将无法运行。尝试将int Num;顶部的main()更改为int Num=99;

答案 1 :(得分:0)

您使用单个push调用函数num,并将其存储到NewNode两次,而不是第二个整数。

您必须使用pushdata1的整数通过使用

之类的内容调用data2
while (1)
{
        scanf("%d", &Num1);
        scanf("%d", &Num2);
        if (num1 == 0 || num2 == 0)
              break;
        Push(Top, Num1,num2); //execute the Push Function

}

push

void Push(StackPointer &Top, int Num1,int num2)
{ 
 StackPointer NewNode;
 NewNode=(StackPointer)malloc(sizeof(struct Node));
 NewNode->Data = Num1;
 NewNode->Data2 =Num2;
 NewNode->Link = Top;
 Top = NewNode;
}