c 结构体方式实现后缀表达式计算(数据结构)

本文介绍了如何使用C语言通过结构体实现后缀表达式的计算。首先创建一个空链栈,然后将数字入栈。遇到非数字时,取出栈顶元素进行计算,结果重新入栈。对于字符串输入,需要注意多个数字连续时的处理。代码包括节点设计、入栈、计算和出栈等关键步骤。
摘要由CSDN通过智能技术生成
功能:

在这里插入图片描述

大致思路:

整体思路:
1.建栈:创建一个空链栈,把数字类型放入栈中。
2.入栈:需要一个栈头和准备入栈的数字。push(T *,int);
3.计算:从输入中读取数据,当遇到不是数字类型时,就从栈顶上往下取数据,取top->data和(top->next)->data;进行计算;
4.出栈:计算完成之后把刚才计算的那两个节点出栈,把得到的计算的结果从新放入栈中,并释放内存;
5.其他:使用字符串输入需要注意:当多个数字一起时不能判断大于10位以上的,所以需要做相关记号,或者采用循环单个输入法以某个特定符号结束。

代码实现:
  1. 节点设计:
typedef struct OperandType{
	int data;			//操作数 
	struct OperandType * next;	
}*LinkedList;
  1. 构建空栈:
LinkedList createStack(){
   
	LinkedList top = (LinkedList) malloc (sizeof(OperandType));	//申请内存 
	if(top != NULL){
   
		top->next = NULL;
		return top;
	}
}
  1. 入栈实现:

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值