首页 > 编程知识 正文

数据结构c语言版耿国华,数据结构课程设计代码

时间:2023-05-06 00:55:33 阅读:22261 作者:4369

匿名用户

一级

2016-09-22答复

算术表达式评估演示

一.概述

数据结构课程设计要求在数据结构的逻辑特性和物理表达、数据结构的选择与应用、算法的设计及其实现等方面加深对课程基本内容的理解。 另外,在编程方法和桌面操作等基本技能和科学作风方面受过比较系统和严格的训练。

这次课程设计中我选择的主题是算术式评价演示。 公式计算是实现编程语言的基本问题之一也是堆栈应用的典型例子。 设计显示用运算符优先法评价算术表达式过程的程序。 深入了解堆栈和队列的特性,在解决实际问题中利用它们的同时,加深对该结构的理解和认识。

二.系统分析

1 .从终端输入不含变量的语法正确的整数表达式作为字符串。 利用已知算子优先关系,实现算术四则混合运算公式的评价,并仿照教科书实例对评价中算子堆栈、运算数堆栈、输入字符、主要操作的变化过程进行建模。

2 .一般来说,计算机解决具体问题需要经过几个步骤。 首先,从具体问题中抽象出相应的数学模型,设计解决该数学模型的算法,最后编制程序,进行测试,调试直到得到所需的答案。 在算术表达式这个程序中,主要利用堆栈,分析运算的优先顺序,实现简单的运算! 要实现运算符优先算法,请使用两种堆栈:存储运算符的堆栈、存储操作数的堆栈和存储运算结果的堆栈。

3 .演示程序以用户在计算机上的交互方式运行,需要一个模块来完成用户和计算机语言的转换。 4 .执行程序时的指令:

本程序为了具体使用,采用菜单方式完成程序演示,很少需要输入特殊指令,只需按照提示输入表达式即可。 )请注意输入时的格式。 否则,可能会引起几个错误)5.测试数据。

2

算术表达式评估演示

一.概述

数据结构课程设计要求在数据结构的逻辑特性和物理表达、数据结构的选择与应用、算法的设计及其实现等方面加深对课程基本内容的理解。 另外,在编程方法和桌面操作等基本技能和科学作风方面受过比较系统和严格的训练。

这次课程设计中我选择的主题是算术式评价演示。 公式计算是实现编程语言的基本问题之一也是堆栈应用的典型例子。 设计显示用运算符优先法评价算术表达式过程的程序。 深入了解堆栈和队列的特性,在解决实际问题中利用它们的同时,加深对该结构的理解和认识。

二.系统分析

1 .从终端输入不含变量的语法正确的整数表达式作为字符串。 利用已知算子优先关系,实现算术四则混合运算公式的评价,并仿照教科书实例对评价中算子堆栈、运算数堆栈、输入字符、主要操作的变化过程进行建模。

2 .一般来说,计算机解决具体问题需要经过几个步骤。 首先,从具体问题中抽象出相应的数学模型,设计解决该数学模型的算法,最后编制程序,进行测试,调试直到得到所需的答案。 在算术表达式这个程序中,主要利用堆栈,分析运算的优先顺序,实现简单的运算! 要实现运算符优先算法,请使用两种堆栈:存储运算符的堆栈、存储操作数的堆栈和存储运算结果的堆栈。

3 .演示程序以用户在计算机上的交互方式运行,需要一个模块来完成用户和计算机语言的转换。 4 .执行程序时的指令:

本程序为了具体使用,采用菜单方式完成程序演示,很少需要输入特殊指令,只需按照提示输入表达式即可。 )请注意输入时的格式。 否则,可能会引起几个错误)5.测试数据。

动作集:

)1)语音识别堆栈1 ) sqstack1S1); //声明堆栈构建函数(2) voidinitstack2) sqstack2s2); //声明堆栈创建函数

)3)语音(SqStack2 S2,SqStack2 S2 ); //决定堆栈函数的进入方式(4)语音推送1 ) sqstack1S1,char e ); //声明堆栈函数(5) voidpush2) sqstack2s2,float e ); //推送函数声明(6) chargettop1) sqstack1s1); //声明获取堆栈顶部元素的函数(7) floatgettop2) sqstack2s2); //声明获取堆栈顶部元素的函数(8) charpop1) sqstack1s1); //声明堆栈函数(9) floatpop2) sqstack2s2); //声明堆栈函数(10 ) char compare (char n,char n ); //声明比较函数

) 11 )浮动操作(float b,char rheta,float b ); //声明运算函数(12 ) voiddispstack1) sqstack1s1); //从堆栈底向堆栈顶依次输出各要素(13 ) voiddispstack2) sqstack2s2); //从堆栈底部向堆栈顶部依次输出各要素(}ADT SqStack

结构分析:

堆栈中的数据节点通过数组存储。 在c语言中,数组用下标从零开始,所以我

我们

在调用他们的数据是要特别注意。指针变量的值要么为空(NULL),不指向任何结点;要么其值为非空,即它的值是一个结点的存储地址。注意,当P为空值时,则它不指向任何结点,此时不能通过P来访问结点,否则会引起程序错误。如果输入的数字不符合题目要求,则会产生错误结果。

算法的时空分析:

时间和空间性能分析:时间上,对于含n个字符的表达式,无论是对其进行合法性检测还是对其进行入栈出栈操作n次,因此其时间复杂度为O(n)。空间上,由于是用数组来存储输入的表达式,用栈来存储运算中的数据和运算符,而栈的本质也用到的数组,数组在定义时必须确定其大小。在不知表达式长度的情况下确定数组的长度确非易事,此时极易造成空间的浪费,因此空间性能不是很好。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。