-1
我正在努力將指針從堆棧的1個元素移動到下一個堆棧。我已經完成實施。堆棧的最後一個元素是給定的,否則我嘗試的東西似乎沒有用。編譯器給出了錯誤next undeclared (first use of this function)
上線pNewNode->next=next
將數據添加到使用C中的2個結構實現的堆棧中:移動指針
相關代碼如下:
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;
}
}
的結構在這裏定義:
typedef struct stack_elem
{
int val;
struct stack_elem *next;
} Stack;
//struct that contains the pointer to the top of the stack
typedef struct
{
int num; //num of elements in stack
Stack *top;; //top of stack
} TopStack;
我也有以下功能相關的原型,因爲結構在頭文件中。爲了便於閱讀,我只包含了我認爲相關的代碼,但如果需要,我可以提供更多內容。
'pNewNode-> next = next;'next'沒有被定義。 –
究竟是什麼問題?它是否編譯,什麼都不做或者有編譯錯誤? – user3794667384
當你想在堆棧的頂部***上添加新節點時,新節點下一個指針應該指向哪裏? –