链表结构推送和弹出

Linked List Structure Push and Pop

本文关键字:结构 链表      更新时间:2023-10-16

我很难理解一个要求用户输入数字的程序,只有当用户输入0时,它才会停止要求用户输入号码。

然而,我似乎无法将输入的第二个数字的值放入Data2

我们如何将用户输入的数字推送到datadata2中,然后将其相加Data+data2并打印总和?

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

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

尝试输入1 2 0而不是1,2,0,您会发现它工作得很好。(你不会得到输出1 + 2 = 3,因为那不是你输出的。相反,你会得到The sum of Popped item is 3

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

用一个num调用函数push,它被存储到NewNode上两次,而不是第二个整数。

您必须使用类似的东西用data1data2的整数调用push

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;
}