-1
スタックの1つの要素から次の要素にポインタを移動しようとしています。私は実装を完了しました。スタックの最後の要素が与えられますが、それ以外の場合は何も動作しないようです。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;
}
}
構造体は、ここで定義されています:コンパイラはpNewNode->next=next
関連するコードは以下である行にエラーnext undeclared (first use of this function)
を与える
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
スタックの*** top ***に新しいノードを追加する場合、新しいノードの 'next'ポインタはどこに向いていますか? –