用栈实现逆序输出键盘输入

 #include"stdlib.h" #include"stdio.h" typedef char StackEntry; typedef struct node { //链栈的结点结构 StackEntry item; //栈的数据元素类型 struct node *next; //指向后继结点的指针 }NODE; typedef struct stack{ NODE *top; }STACK; //初始化栈 void InitStack(STACK *S) { S->top=NULL; } //入栈 void Push(STACK *S,StackEntry item) { NODE* p; p=(NODE*)malloc(sizeof(NODE)); if (!p) exit(0); else { p->item=item; p->next=S->top; S->top=p; } } //是否为空栈 int StackEmpty(STACK S) { if (S.top==NULL) return true; else return false; } //出栈 void Pop(STACK*S, StackEntry *item) { NODE *p; if (StackEmpty(*S)) exit(0); else { *item=S->top->item; p=S->top; S->top=p->next; free(p); } } void ReverseRead( ) { STACK S; //定义一个栈结构S char ch; InitStack(&S); //初始化栈 while ((ch=getchar())!='\n') //从键盘输入字符,直到输入换行符为止 Push(&S ,ch); //将输入的每个字符入栈 while (!StackEmpty(S)) { //依次退栈并输出退出的字符 Pop(&S,&ch); putchar(ch); } putchar('\n'); } void main(){ ReverseRead(); }

转载于:https://www.cnblogs.com/weiqubo/archive/2009/08/17/1930119.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值