吠错了树 2018-12-06 09:35 采纳率: 0%
浏览 636

一个栈中的元素顺序插入另一个栈

#include
#include
#include
#define OK 1
#define ERROR 0
#define Stack_Size 20//定义栈最多能够存储的元素个数
typedef struct
{
int stacksize//当前已分配储存已使用空间
int *base//栈底指针
int *top;//整型变量top存储栈顶元素的下标,作为栈顶指针,top为-1时表示空栈
}SeqStack;

int InitStack(SeqStack );//初始化栈,即将一个栈清除为空
int StackEmpty(SeqStack *);//检查一个栈是否为空
int pop(SeqStack
,int*);//向一个栈中删除元素
int push(SeqStack , int);//向一个栈中插入元素
void Print(SeqStack
);//输出栈

int main()
{
SeqStack p = (SeqStack)malloc(sizeof(SeqStack)), q = (SeqStack)malloc(sizeof(SeqStack));
InitStack(p);
InitStack(q);
srand(time(NULL));
int i = 0, x, A[100];
cout << "随机生成100个要入栈的数字...." << endl;
while (i < 100)
{
cin.unget();
A[i] = rand() % 200;
Push(p, A[i++]);
}
cout << "打印第一个栈的内容:" << endl;
for (i = 0; i < p->sacksize; i++)
{
printf("%-4d", A[i]);
if ((i + 1) % 10 == 0)cout << endl;
}
system("pause");
cout << "打印第二个栈的内容:" << endl;
for (i = 0; p->sacksize != 0; i++)
{
Pop(p, &x);
Push(q, x);
printf("%-4d", x);
if ((i + 1) % 10 == 0)cout << endl;
}
system("pause");
}
int InitStack(SeqStack S)
{
s->base = (int
)malloc(Stack_Size * sizeof(int));
s->top = s->base;
s->sacksize = 0;
}
int StackEmpty(SeqStack *S)
{
return(s->top == s->base ? OK: ERROR);
}
int pop(SeqStack *S, int *x)
{
if (s->sacksize == 0)
return FALSE;
else
{
*x = *(--s->top);
*(s->top) = NULL;
s->sacksize--;
}
return TRUE;

}
int push(SeqStack *S, int x)
{
if (Stack_Size == s->sacksize)
return FALSE;
else
{
*(s->top++) = e;
s->sacksize++;
}
return TRUE;
}
void Print(SeqStack *S)
{
printf("输出元素:\n");
for (int i = S->top; i >=S->base; i--)
{
printf("%d", S->elem[i]);
}
printf("\n");
}

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 ads仿真结果在圆图上是怎么读数的
    • ¥20 Cotex M3的调试和程序执行方式是什么样的?
    • ¥20 java项目连接sqlserver时报ssl相关错误
    • ¥15 一道python难题3
    • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
    • ¥15 牛顿斯科特系数表表示
    • ¥15 arduino 步进电机
    • ¥20 程序进入HardFault_Handler
    • ¥15 oracle集群安装出bug
    • ¥15 关于#python#的问题:自动化测试