- 浏览: 69891 次
- 性别:
- 来自: 大连
最近访客 更多访客>>
最新评论
-
newlangwen1:
你好 我想请教个问题,我运行了一下上面的程序,结果是输入什么就 ...
C程序 对文本行进行排序
#include<stdlib.h> #include<stdio.h> #include<ctype.h> #include<math.h> #define MAXOP 100 #define NUMBER 0 #define TRUE 1 #define FALSE 0 int Getop(char s[]); void push(double val); double pop(void); void showTop(void); void duplicate(void); void swapItems(void); void clearStack(); int main(void) { int type; double op2; char s[MAXOP]; int flag = TRUE; while((type = Getop(s)) != EOF) { switch(type) { case NUMBER: push(atof(s)); break; case '+': push(pop() + pop()); break; case '*': push(pop() * pop()); break; case '-': op2 = pop(); push(pop()- op2); break; case '/': op2 = pop(); if(op2) push(pop() / op2); else printf("\nError: division by zero!"); break; case '%': op2 = pop(); if(op2) push(fmod(pop(), op2)); else printf("\nError: division by zero!"); break; case '?': showTop(); break; case '#': duplicate(); break; case '~': swapItems(); break; case '!': clearStack(); case '\n': printf("\n\t%.8g\n", pop()); break; default: printf("\nError: unknown command %s.\n", s); break; } } return EXIT_SUCCESS; } #define MAXVAL 100 int sp = 0; /* Next free stack position. */ double val[MAXVAL]; /* value stack. */ /* push: push f onto stack. */ void push(double f) { if(sp < MAXVAL) val[sp++] = f; else printf("\nError: stack full can't push %g\n", f); } /*pop: pop and return top value from stack.*/ double pop(void) { if(sp > 0) return val[--sp]; else { printf("\nError: stack empty\n"); return 0.0; } } void showTop(void) //? { double top=val[sp]; printf("%u\n",top); } void duplicate(void) //# { int top=sp-1; double topVal; topVal=val[top]; val[top+1]=topVal; sp++; } void swapItems(void) //~ { double temp; int top= sp; int secTop = sp-1; temp = val[top]; val[top]=val[secTop]; val[secTop]=temp; } /* pop only returns a value if sp is greater than zero. So setting the stack pointer to zero will cause pop to return its error */ void clearStack(void) //! { sp=0; } int getch(void); void unGetch(int); /* Getop: get next operator or numeric operand. */ int Getop(char s[]) { int i = 0; int c; int next; /* Skip whitespace */ while((s[0] = c = getch()) == ' ' || c == '\t') ; s[1] = '\0'; /* Not a number but may contain a unary minus. */ if(!isdigit(c) && c != '.' && c != '-') return c; if(c == '-') { next = getch(); if(!isdigit(next) && next != '.') { return c; } c = next; } else c = getch(); while(isdigit(s[++i] = c)) c = getch(); if(c == '.') /* Collect fraction part. */ while(isdigit(s[++i] = c = getch())) ; s[i] = '\0'; if(c != EOF) unGetch(c); return NUMBER; } #define BUFSIZE 100 char buf[BUFSIZE]; int bufp = 0; /* Getch: get a ( possibly pushed back) character. */ int getch(void) { return (bufp > 0) ? buf[--bufp]: getchar(); } /* unGetch: push character back on input. */ void unGetch(int c) { if(bufp >= BUFSIZE) printf("\nUnGetch: too many characters\n"); else buf[bufp++] = c; }
发表评论
-
C程序 声明与定义的区别
2010-07-30 15:34 1294http://zhidao.baidu.com/questio ... -
C语言 函数指针 与 指针函数
2010-07-30 10:27 892指针函数是返回指针的函数,即本质是一个函数。函数返回类型是某一 ... -
C程序 命令行参数
2010-07-30 09:34 663echo.cpp #include <stdi ... -
C程序 整型数按位取反 输出结果
2010-07-29 15:16 1301#include <stdio.h> int m ... -
C程序 对文本行进行排序
2010-07-26 09:30 985#include <stdio.h> #incl ... -
C语言:malloc()函数与alloc()函数
2010-07-24 10:02 899C语言跟内存分配方式 ... -
C程序设计语言(第二版) 5-4 strend(s,t)
2010-07-23 16:29 1450strend(s,t) 如果字符串t出现在字符串s的尾部,该函 ... -
C程序设计语言(第二版) 5-3 编写strcat()
2010-07-23 16:02 790#include<stdio.h> void ... -
C程序 关于字符串的问题
2010-07-23 15:47 662#include<stdio.h> void ... -
C程序设计语言(第二版)5-2
2010-07-22 17:13 666#include <ctype.h> #incl ... -
C程序设计语言(第二版) 4-14
2010-07-22 11:47 840定义宏swap(t, x, y)以交换t类型的两个参数 ... -
C程序设计语言(第二版) 4-13 递归版本reverse()将字符串倒置输出
2010-07-22 11:18 987编写一个递归版本的reverse()函数,将字符串倒置 ... -
C程序设计语言(第二版) 4-12
2010-07-22 10:29 1012运用printd函数的设计思想编写一个递归版本的itoa函数, ... -
C程序 递归小例子 快速排序
2010-07-22 09:26 908从执行速度来讲,下列版本的快速排序可能不是最快的,但是它是最简 ... -
C程序 递归实现将数字作为字符串输出
2010-07-21 15:47 1261将一个数字作为字符串打印的情况,数字是反序生成的:低位数字先于 ... -
C语言学习之变量存储
2010-07-21 15:14 858http://zhidao.baidu.com/questio ... -
C语言外部变量的使用以及extern的用法
2010-07-21 15:11 2179http://hi.baidu.com/%C3%E2%B7%D ... -
C语言 全局变量和局部变量
2010-07-21 15:07 1413http://hi.baidu.com/%C3%E2%B7%D ... -
C语言 extern
2010-07-21 11:20 1090在头文件中声明函数时,前面的extern可有可无,只要这些函数 ... -
C程序设计语言(第二版) 4-8 最多只压回 一个字符
2010-07-20 18:47 753#include <stdio.h> i ...
相关推荐
顺序栈,利用一组地址连续的存数单元依次存放自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素在顺序栈中的位置,压栈、弹栈、获得栈顶元素、统计栈中元素个数、打印栈中元素
用c++写的对栈的小程序,实现了堆栈,出栈,取栈顶元素的操作
栈中有以下操作:元素入栈,读出栈顶元素值,退栈,判断栈顶空否,如果溢出,程序终止。
编写一个程序,实现顺序栈的各种基本运算,并在基础上完成以下功能: 1)初始化顺序栈; 2)判断顺序栈是否为空; 3)依次进栈元素a,b,c,d,e; 4)判断顺序栈是否为空; 5)输出栈长度; 6)输出从栈顶到栈底的元素; 7)...
printf("*******************************... printf("* 7---------返回栈顶元素 *\n"); printf("* 8---------清空栈 *\n"); printf("* 9---------退出 *\n"); printf("**************************************\n");
实验二 栈 一、实验目的 1、掌握栈的结构特性及其入栈,出栈操作; 2、对栈相应算法的时间复杂度进行分析; 3、理解栈数据结构的特点(优缺点); 4、掌握栈的概念。 二、实验环境 windowsXP microsoft visual ...
栈的基本操作,实现入栈,出栈,取栈顶的值等操作过程111111111111111
C语言实现栈的基本操作: 1.初始化栈 2.清空栈 3.判断栈是否清空 4.压栈 5.出栈 6.得到栈长度 7.返回栈顶数据 8.遍历栈
2. 掌握栈的初始化、进栈、退栈、取栈顶、判栈空等基本操作。 3. 运用栈的基本操作解决一些简单的实际问题。 4. 掌握队列的先进先出的特点。 5. 掌握队列的初始化、入队、出队、取队首元素、判队空等基本操作
使用顺序线性表实现,含有如下功能: 1.创建栈; 2.销毁栈; 3.清空栈; 4.进栈; 5.出栈; 6.获取栈顶元素; 7.获取栈的大小。
编写程序任意输入栈长度和栈中的元素值,构造一个顺序栈,对其进行清空、销毁、入栈、出栈以及取栈顶元素操作。
4)存取操作:读取栈顶元素,将数据输出在屏幕上;。 3、 为了增强程序的可读性,程序中要有适当的注释。 4、 由教师随机给出栈操作指令序列,完成程序验证。例如:(压栈 a,压栈 b,压栈 c,压栈 d,弹栈,弹 栈...
) 一、 选择题 (1)下列关于栈叙述正确的是 A)栈顶元素最先能被删除 B)栈顶元素最后才能被删除 ... C)栈底元素永远不能被删除 D)以上三种说法都不对 。。。。。。。。。。。 答案在最后一页
完成栈的建立、入栈、出栈、取栈顶元素、判断栈是否为空、计算栈中数据元素的个数、打印栈中的元素、将栈清空、销毁等函数的功能
4) 存取操作:读取栈顶元素,将数据输出在屏幕上;。 3、 为了增强程序的可读性,程序中要有适当的注释。 4、 由教师随机给出栈操作指令序列,完成程序验证。例如:(压栈 a,压栈 b,压栈 c,压栈 d,弹栈,弹 栈...
C语言数据结构之栈简单操作 实验: 编写一个程序实现顺序栈的各种基本运算,并在此基础上设计一个主程序,完成如下功能: (1)初始化顺序栈 (2)插入元素 (3)删除栈顶元素 (4)取栈顶元素 (5)遍历顺序栈 ...
数据结构:栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。...从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
进行栈类模板的设计并实现,栈采用链式存储结构,数据元素可以是char,int,float 等多种数据类型,包括以下功能: 实现初始化栈操作,建立一个空栈; (1)实现清空栈操作; (2)实现判断栈是否为空的操作; (3)实现求栈长度...
一个链式栈的类,实现了栈的基本操作,入栈,出栈,清空,复制(拷贝构造函数)
这个资源主要是使用C语言实现的栈和队列两种数据结构基本操作,包含栈的入栈、出栈,队列的入队列、出队列的相关操作,具体包含如下几个: 1、顺序栈:入栈、出栈、获取栈顶元素、打印栈。 2、链栈:入栈、出栈、...