实验三 栈的基本运算

原创 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 :       }

栈的定义及其基本运算

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

《数据结构》实验三:栈和队列实验

《数据结构》实验三:    栈和队列实验 一..实验目的      巩固栈和队列数据结构,学会运用栈和队列。 1.回顾栈和队列的逻辑结构和受限操作特点,栈和队列的物理存储结构和常见操...
  • itsLIANGYINGYI_
  • itsLIANGYINGYI_
  • 2014年11月05日 22:54
  • 1730

栈的基本运算实现

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

实验四 二叉树基本操作的实现

实现链式储存创建,递归先序 中序 后序遍历,叶子结点数,数的结点总数,交换左右子树 #include #include #include int cnt; //结点声明,数据域 左子树...
  • bmicnj
  • bmicnj
  • 2016年10月28日 23:24
  • 801

数据结构栈的运算

栈在表达式过程中的应用:建立操作数栈和运算符栈。运算符有优先级。规则: 自左至右扫描表达式,凡是遇到操作数一律进操作数栈。 当遇到运算符时,如果它的优先级比运算符栈栈顶元素的优先级高就进栈。反之,...
  • Allureyou
  • Allureyou
  • 2016年11月07日 21:10
  • 525

编写一个程序实现顺序栈的各种基本运算(假设顺序表的元数基本类型为Char)

/* *Copyright (c) 2016, 烟台大学计算机学院 *All rights reserved. *文件名称:main.cpp *作者:张旺华 *完成日期: 2016 年 7 ...
  • wh201458501106
  • wh201458501106
  • 2016年07月01日 16:50
  • 1697

数据结构实验之栈八:栈的基本操作

数据结构实验之栈八:栈的基本操作 Time Limit: 1000MS Memory limit: 65536K 题目描述 堆栈是一种基本的数据结构。堆栈具有两种基本操作方式,p...
  • acm_zh
  • acm_zh
  • 2016年08月02日 14:37
  • 1071

南邮数据结构实验三---图的基本运算及飞机换乘次数最少问题

一、 实验目的和要求 1.掌握在图的邻接矩阵和邻接表存储结构实现图的基本运算的算法。学习使用图算法解决应用问题的方法。 (1). 验证教材中关于在邻接矩阵和邻接表两种不同存储结构上实现图的基本运算...
  • zl1085372438
  • zl1085372438
  • 2017年01月23日 16:53
  • 816

栈和队列的基本运算实现

编写一个程序exp3-6.cpp,求解皇后问题:在n×n的方格棋盘上,放置n个皇后,要求每个皇后不同行、不同列、不同左右对角线。 要求:(1)皇后的个数n由用户输入,其值不能超过20,输出所有的解。...
  • mayuko2012
  • mayuko2012
  • 2016年04月18日 10:52
  • 577

数据结构实践项目——图的基本运算及遍历操作

本文是针对[数据结构基础系列(7):图]中第1-9课时的实践项目。 0701 图结构导学 0702 图的定义 0703 图的基本术语 0704 图的邻接矩阵存储结构及算法 0705 图的邻接...
  • sxhelijian
  • sxhelijian
  • 2015年11月08日 15:01
  • 3393
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:实验三 栈的基本运算
举报原因:
原因补充:

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