⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch3_1.c

📁 本内容为清华大学严蔚敏版数据结构部分算法实现代码
💻 C
字号:
#include <stdio.h>
#define STACK_SIZE 10                          /* 栈的大小 */
int push(int);
int pop(void);
int stack[STACK_SIZE];                     /* 声明栈为数组 */
int top=-1;                                /* 指向栈的顶端 */
void main()
{
  int temp;                                  /* 保存输入的数据 */
  int select;                                      /* 选项设置 */
  int loop=1;                                      /* 循环控制 */
  while(loop)
  {
    printf("1.加入数据 2.删除数据 3.结束==> "); 
    scanf("%d", &select);                         /* 读入选项 */
    switch(select)
    {
      case 1:                               /* 将数据加入栈中 */
        printf("请输入加入栈的数据==> ");
        scanf("%d", &temp);
        if(push(temp) == -1)
          printf("队列已满,无法加入此笔数据!\n");
        break;
      case 2:                            /* 将数据从栈中取出 */
        if((temp=pop()) == -1)
          printf("栈是空的.\n");
        else
          printf("从栈取出数据==> %d\n", temp);
        break;
      case 3:                                        /* 结束 */
        loop=0;
        break;
      default:                                    /* 选项错误 */
        printf("输入错误.\n");
        break;
    }
	printf("\n");
  }
  /* 取出栈中剩余的数据 */
  if(top == -1)
    printf("栈中无剩余的数据.\n");
  else
  {
    printf("栈中剩余的数据==> ");
    while((temp=pop()) != -1)
      printf("%d ", temp);
	printf("\n");
  }
}
int push(int item)                                   /* 加入数据 */
{
  if(top >= STACK_SIZE-1)                /* 检查栈是否已满了 */
    return -1; 
  top++;                              /* 将top指向栈的顶端 */
  stack[top]=item;                            /* 将数据存入栈 */
}
int pop()                                           /* 取出数据 */
{
  if(top < 0)                             /* 检查栈是否已空的 */
    return -1;
  return stack[top--];        /* 将数据111
  22从栈取出,并将top的值减1 */
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -