实验三 栈的基本运算

原创 2007年10月15日 23:30:00

本周三(10月17日)完成 栈的基本运算的实验

实验内容:p59实训1 将十进制数转换为2进制数。

参考教材p44页介绍和以下粘的程序代码

 1 :      /*顺序栈的基本操作*/
2 : 
3 :       #include <stdio.h>
4 :    #include<malloc.h>
5 :       #define MaxSize 100
6 :       typedef char ElemType;
7 :       typedef struct
8 :       {
9 :   char stack[MaxSize];
10 :          int top;
11 :       } stacktype;
12 :       void initstack(stacktype *S)
13 :       {
14 :   S->top=-1;
15 :       }
16 :       void push(stacktype *S,ElemType x)
17 :       {
18 :         if (S->top==MaxSize) printf("栈上溢出!/n");
19 :         else
20 :         {
21 :            S->top++;
22 :            S->stack[S->top]=x;
23 :         }
24 :       }
25 :       void pop(stacktype *S)
26 :       {
27 :         if (S->top==-1) printf("栈下溢出!/n");
28 :         else S->top--;
29 :    }
30 :    ElemType gettop(stacktype *S)

31 :       {
32 :    int temp;
33 :         if (S->top==-1) printf("栈空!/n");
34 :         else {
35 :      temp=S->top;
36 :      return S->stack[S->top] ;
37 :       }
38 :    }
39 :       int empty(stacktype *S)
40 :       {
41 :         if (S->top==-1) return(1);
42 :         else return(0);
43 :       }
44 :       void display(stacktype *S)
45 :       {
46 :         int i;
47 :         printf("栈中元素:");
48 :         for (i=S->top;i>=0;i--)
49 :      printf("%c ",S->stack[i]);
50 :         printf("/n");
51 :       }
52 :
 
53 :      void main()
54 :       {
55 :         stacktype *st;
56 :      st=(stacktype *)malloc(sizeof(stacktype));
57 :         printf("建立一空栈/n");
58 :         initstack(st);
59 :         printf("栈空:%d/n",empty(st));
60 :         printf("依次插入a,b,c,d元素/n");
61 :         push(st,'a');
62 :         push(st,'b');
63 :         push(st,'c');
64 :         push(st,'d');
65 :         display(st);
66 :         printf("退一次栈/n");
67 :         pop(st);
68 :  //     printf("栈顶元素:%c/n",gettop(st));
69 :         printf("退一次栈/n");
70 :         pop(st);
71 :         display(st);
72 :       }

Python全栈

python 全栈开发,从浅入到人工智能
  • 2017年07月17日 20:42

栈的定义及其基本运算

基本定义:栈(Stack)是n个元素a1,a2,…an,组成的有限序列,记作S =(a1,a2,…,an),并且只能在一端插入和删除元素,n=0时称为空栈。栈的特征:由于栈只能从一端插入和删除元素,故...
  • larry233
  • larry233
  • 2016-03-16 23:27:20
  • 3112

栈的基本运算实现

栈是一种只能在一端进行插入和删除操作的线性表。表中允许进行插入和删除操作的一端称为栈顶。栈顶的当前位置是动态的,由一个称为栈顶指针的位置指示器指示。表的另一端称为栈底。不含数据元素的栈称为空栈。栈的插...
  • suaoyang
  • suaoyang
  • 2014-07-28 19:01:28
  • 2042

栈的定义以及基本运算

栈和队列实质上是俩种受限制的线性表
  • XSF50717
  • XSF50717
  • 2014-10-09 19:30:21
  • 1338

实现顺序栈的各种基本运算的算法

实现顺序栈的各种基本运算的算法,并在此基础上设计一个主程序完成各种基本功能!#include using namespace std; #define MaxSize 50 typedef char...
  • wh751289288
  • wh751289288
  • 2013-07-31 16:42:54
  • 1592

顺序栈各种基本运算的算法

"sqstack.cpp"中源程序代码: #include #include #define MaxSize 100 typedef int ElemType; typedef struct { ...
  • qq_37388280
  • qq_37388280
  • 2017-10-18 23:16:51
  • 226

栈的基本运算

LniStack(S):创建一个空栈S。StackEmpty(S):判定是否为空栈。若为空栈则返回TRUE,否则为FALSE。StackFull(S):判定是否为满栈。若是则返回TRUE,否则为FAL...
  • qq_40328281
  • qq_40328281
  • 2018-02-23 15:44:06
  • 36

实现顺序栈各种基本运算的算法

/*algo3-1.cpp*/ #include #include #define MaxSize 100 typedef char ElemType; typedef struct {...
  • lilanfeng1991
  • lilanfeng1991
  • 2013-01-27 15:01:35
  • 2269

编写一个程序,实现顺序栈的各种基本运算。

完成如下功能: (1)初始化栈s; (2)判断栈s是否非空; (3)依次进栈元素a,b,c,d,e (4)判断栈s是否非空; (5)输出栈长度; (6)输出从栈顶到栈底元素; (7)输出出栈序列; (...
  • u012651730
  • u012651730
  • 2013-11-14 16:25:34
  • 4479

YTU OJ 2248: 栈的基本运算(栈和队列)

Description利用栈的基本运算,编写一个算法输入若干整数,以0标识输入结束。然后按与输入相反次序输出这些整数。Input输入:1 2 3 4 5 0Output输出:5 4 3 2 1Samp...
  • mcp3128
  • mcp3128
  • 2017-09-26 18:14:47
  • 210
收藏助手
不良信息举报
您举报文章:实验三 栈的基本运算
举报原因:
原因补充:

(最多只允许输入30个字)