《湘潭大学 数据结构实验2 实验报告 源代码 线性表综合应用.docx》由会员分享,可在线阅读,更多相关《湘潭大学 数据结构实验2 实验报告 源代码 线性表综合应用.docx(4页珍藏版)》请在三一办公上搜索。
1、湘潭大学 数据结构实验2 实验报告 源代码 线性表综合应用“数据结构和算法II”课程实验报告 实验名称:线性表的综合应用 班级 姓名 学号 实验日期: 实验机时:2 学时 实验成绩: - 一.实验目的: 1. 掌握顺序表和链表的概念,学会对问题进行分析,选择恰当的逻辑结构和物理结构 2. 加深对顺序表和链表的理解,培养解决实际问题的编程能力 二.实验内容: 基本实验内容: 实现一元稀疏多项式的表示及基本操作 程序及注释: 1. 多项式基本运算: #include #include #define Error( Str ) FatalError( Str ) #define FatalError
2、( Str ) fprintf( stderr, %sn, Str ), exit( 1 ) #define MaxDegree 100 static int Max( int A, int B )/比较大小的函数 return A B ? A : B; typedef struct int CoeffArray MaxDegree + 1 ; int HighPower; *Polynomial; void ZeroPolynomial( Polynomial Poly )/将多项式数列制空 int i; for( i = 0; i CoeffArray i = 0; Poly-HighPo
3、wer = 0; Void AddPolynomial( const Polynomial Poly1, const Polynomial Poly2,Polynomial PolySum )/将两个多项式数列相加 int i; ZeroPolynomial( PolySum ); PolySum-HighPower = Max( Poly1-HighPower,Poly2-HighPower ); for( i = PolySum-HighPower; i = 0; i- ) PolySum-CoeffArray i = Poly1-CoeffArray i + Poly2-CoeffArr
4、ay i ; Void MultPolynomial( const Polynomial Poly1,const Polynomial Poly2, Polynomial PolyProd )/将两个多项式数列相乘 int i, j; ZeroPolynomial( PolyProd ); PolyProd-HighPower = Poly1-HighPower + Poly2-HighPower; if( PolyProd-HighPower MaxDegree ) Error( Exceeded array size ); else for( i = 0; i HighPower; i+
5、) for( j = 0; j HighPower; j+ ) PolyProd-CoeffArray i + j +=Poly1-CoeffArray i *Poly2-CoeffArray j ; Void PrintPoly( const Polynomial Q )/输出多项式数列 int i; for( i = Q-HighPower; i 0; i- ) printf( (%dx%d)+, Q-CoeffArray i , i ); printf( %d, Q-CoeffArray 0 ); int main( ) printf(以下将对(t+1)*(t+1)+(t+1)*(t+1
6、)进行运算:n运算结果为:); Polynomial P, Q; /定义两个多项式数列变元 P = malloc( sizeof( *P ) );/为变元分配存储空间 Q = malloc( sizeof( *Q ) ); P-HighPower = 1; P-CoeffArray 0 = 1; P-CoeffArray 1 = 1; MultPolynomial( P, P, Q ); MultPolynomial( Q, Q, P ); AddPolynomial( P, P, Q ); PrintPoly( Q ); return 0; 三.运行结果: 四.实验心得: 通过这次课程设计,
7、我们对C语言以及数据结构有了更深刻的了解,增强了程序的编写能力,巩固了专业知识,对程序的模块化观念也又模糊逐渐变的清晰了。在程序的运行与调试过程中出现了很多错误,通过反复地复习课本上的相关知识,不停地修改与调试,我终于完成了这段程序。在调试过程中,我认识到了数据结构的灵活性与严谨性,同一个功能可以由不同的语句来实现,但编写程序时要特别注意细节方面的问题,因为一个小小的疏忽就能导致整个程序不能运行。我也认识到了自己的薄弱之处,如对链表相关知识的欠缺,文件运用的不熟练,在以后的学习中我要集中精力、端正态度,争取把知识学得更扎实、更全面。 经过这次的实验,我整体对各个方面都得到了不少的提高,希望以后学校和系里能够开设更多类似的实验,能够让我们得到更好的锻炼。也让我深深感受到讨论交流很重要,遇到困难时,大家一起讨论,加强我们的团队合作精神。