int 配列と char 配列 (文字列) の両方を取り込むには、スタックが必要です。何かご意見は?現在、整数で動作する pop および push コマンドがあることを知っています。別のタイプの構造の方がうまく機能しますか? さまざまな議論を受け入れることができる特定の構造を思い出すようです。char配列を処理するために別の関数を定義すると役に立ちますか? cでオーバーロードできないことは知っています。私のもう1つの考えは、スタックに文字列を取り込ませ、必要に応じて文字列とintの間で変換することでしたが、それは2つの変数型の間で少し危険な定数の切り替えのようです.
typedef struct Stack
{
int capacity; // max # of elements the stack can hold
int size; // current size of the stack
int *elements; // the array of elements
}Stack;
Stack * createStack(int maxElements)
{
Stack *S;
S = (Stack *)malloc(sizeof(Stack));
S->elements = (int *)malloc(sizeof(int)*maxElements);
S->size = 0;
S->capacity = maxElements;
return S;
}
// STACK COMMANDS
void pop(Stack *S)
{
if(S->size==0)
{
printf("Stack is Empty\n");
return;
}
else
{
S->size--;
}
return;
}
int top(Stack *S)
{
if(S->size==0)
{
printf("Stack is Empty\n");
exit(0);
}
return S->elements[S->size-1];
}
void push(Stack *S,int element)
{
if(S->size == S->capacity)
{
printf("Stack is Full\n");
}
else
{
S->elements[S->size++] = element;
}
return;
}