我想将红色,蓝色和绿色等字符串推入堆栈
//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
我做得对吗?
答案 0 :(得分: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 ++中有很多不同的东西,所以请先决定使用哪种语言。这将有助于您获得更好的答案。