将数据添加到使用C:移动指针中的2个结构实现的堆栈中

时间:2016-11-17 14:20:51

标签: c pointers struct linked-list stack

我正在努力将指针从堆栈的1个元素移动到下一个元素。我已经完成了实施。给出了堆栈的最后一个元素,但是我尝试的任何东西似乎都没有用。编译器在行curl -X POST -H "Content-Type: application/json" -d '{ "recipient":{ "id":"USER_ID" }, "sender_action":"typing_on" }' "https://graph.facebook.com/v2.6/me/messages?access_token=PAGE_ACCESS_TOKEN"

上提供错误next undeclared (first use of this function)

相关代码如下:

pNewNode->next=next

这里定义了结构:

void push( TopStack *ts, int val)
{
    if(ts->num==0)
    {
        Stack *pNewNode;
        pNewNode=(Stack*)malloc(sizeof(Stack));
        pNewNode->val=val;
        pNewNode->next=NULL;
        ts->top=pNewNode;
    }
    else if(ts->num!=0)
    {
        Stack *pNewNode;
        pNewNode=(Stack*)malloc(sizeof(Stack));
        pNewNode->val=val;
        pNewNode->next=next;
        ts->top=pNewNode;
    }
}

我还有以下函数的相关原型,因为结构位于头文件中。为了便于阅读,我只包含了我认为的相关代码,但如果需要,我可以提供更多。

1 个答案:

答案 0 :(得分:0)

请修改其他部分的代码pNewNode-> next = ts-> top;

void push( TopStack *ts, int val)
{
    if(ts->num==0)
    {
       Stack *pNewNode;
       pNewNode=(Stack*)malloc(sizeof(Stack));
       pNewNode->val=val;
       pNewNode->next=NULL;
       ts->top=pNewNode;
   }
   else if(ts->num!=0)
   {
       Stack *pNewNode;
       pNewNode=(Stack*)malloc(sizeof(Stack));
       pNewNode->val=val;
       pNewNode->next=ts->top;
       ts->top=pNewNode;
   }
}