c语言简单题目,高手解答下

来源:百度知道 编辑:UC知道 时间:2024/05/29 05:40:48
堆栈的特点:
后进先出
要求用两种方式(数组,链表)实现以下功能
压栈 int Push(int element)
弹栈 int Pop()
判空 int IsEmpty()
置空 int Clear()
用数组方式实现时,采用int类型,
长度为128
压栈 int Push(int element) 输入:压栈元素 输出:成功:0 失败:-1
弹栈 int Pop() 输出:成功:0 失败:-1
判空 int IsEmpty() 输出:空: 0 不空:-1
置空 int Clear() 输出:成功:0 失败:-1

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main()
{
char aChar;
int aInt, status;
status = 1;

do
{
printf("What to do?(p(Pop)/u(pUsh)/c(Clear)/q(Quit)):");
scanf("%c", &aChar);
if(aChar == 'u')
{
printf("Please enter a number:");
scanf("%d", &aInt);
printf("此处压栈\n");
}
else if(aChar == 'p')
{
printf(&qu

//这个是数组实现的,无需用到isEmpty()函数
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int stack[128] = {0};
int length = -1;
void Push(int a)
{
if(length < 127)
{
length ++;
stack[length] = a;
printf("成功,输入的元素是:%d\n",a);
}
else
printf("失败,堆栈已满\n");
}

void Pop()
{
if(length >= 0)
{
printf("成功,取出的元素是:%d\n",stack[length]);
length --;
}
else
printf("失败,堆栈内无元素");
}

void Clear()
{
length = -1;
printf("成功清空堆栈\n");
}

int main()
{
char aChar;
int aInt, status;
status = 1;

do
{
printf("What to do?(p(Pop)/u(pUsh)/c(Clear)/q(Quit)):\n");
scanf("%c", &aChar);
if(aChar == 'u')