2016-04-17 5 views
-2

は私がスタック文字列をスタックにプッシュする方法は?

//This is my structure containing the stack and top pointer 

typedef struct{ 
    char stk[10]; 
    int top; 
}STACK; 

//This is my push funtion 

void push(STACK stak, char str[]) 
{ 
    stak->top++; 
    strcpy(stak->stk[stak->top], str); 
    return; 
} 

私はそう

red 
blue 
green 

は、私は右のそれをやっているようなスタックを形成したいに、赤、青、緑のような文字列をプッシュしたいですか?

+3

いいえ、あなたのスタックの配列は10文字**です.3つの文字列をスタックにプッシュしています。結果として何を得ましたか? –

+4

これはCまたはC++ですか? * one *言語を選択してください。 –

+0

クラッシュします。だから私はあなたからの助けが必要です。私のプログラムを修正して、動作させるようにしてください。文字列をスタックの1つのインデックスにプッシュすることは可能ですか? – Brentoy

答えて

1

基本的な質問は、スタック自体の定義です。

スタックは、実際の物理スタックまたはパイルによって表される線形構造と論理的に考えることができる基本データ構造です。スタックの最上部と呼ばれる一端でアイテムの挿入と削除が行われる構造です。

あなたがやっていることは、チャンクのスタックを作成し、それに文字列をプッシュしようとしていることです。 代わりに、文字列のスタックを作成する必要があります。

typedef struct{ 
string stk[10]; 
int top; 
}STACK; 

void push(top,string str) 
{ 
    top++; 
    //overflow condition here 
    strcpy(STACK.stk[top],str); 
} 

また、CとC++では多くのことが異なるので、まずどの言語を使用するか決めてください。それはより良い答えを得るのに役立ちます。

+0

は文字列の配列を持つことができないことを知りました。ありがとう。初心者はここに – Brentoy

関連する問題