中国石油大学远程教育学院《数据结构课程设计》课程设计报告模板
数据结构课程设计报告模板参考

XX学院数据结构课程设计(论文)题目:散列表的设计与实现学生XX:X攀学号:4所在院(系):数学与计算机学院专业:网络工程班级:二班指导教师:蒋斌职称:副教授2017年6 月28 日XX学院教务处制附件2:XX学院本科学生课程设计任务书注:任务书由指导教师填写。
附件3:摘要信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济和社会生活的各个领域。
计算机虽然与人类的关系愈来愈密切,还有人由于计算机操作不方便继续用手工劳动。
散列表的设计与实现所涉及到的操作算法都是以链表或顺序表的基本运算作为基础的,此程序通过通讯录实现,包括建立通讯录,添加记录,查询记录,删除记录,显示记录,修改记录。
通过顺序表存储结构实现数据的输入,实现各子程序过程的演示,对异常输入信息报错。
关键字:新建通讯录,散列表,散列函数,处理冲突目录摘要V 1课程设计的目的和意义 1 2需求分析 22.1需求概述 22.2需求环境 22.3功能描述 2 3整体设计(方案设计) 33.1系统功能设计 33.2处理功能设计 33.3主要模块 53.4算法模块设计 53.4.1哈希算法 53.5二次探测再散列 6 4程序结构及源代码说明 64.1程序结构说明 64.1.1哈希函数 64.1.2冲突处理函数74.2程序源码及说明8 5程序测试及运行结果说明1 65.1主菜单运行界面1 65.2各项功能测试1 65.2.1用户信息录入1 65.2.2冲突解决175.2.3用户查找17 总结18 参考文献201 课程设计的目的和意义《数据结构》主要介绍一些最常用的数据结构,阐明各种数据结构内在的逻辑关系,讨论其在计算机中的存储表示,以及在其上进行各种运算时的实现算法,并对算法的效率进行简单的分析和讨论。
数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。
数据结构课程设计报告撰写格式

数据结构课程设计
学院名称:
专业:
班级:
姓名:
年月日
《数据结构课程设计》报告要求(字体黑体,小三,居中)
一、第一类题目(宋体,四号,加粗)
1.问题陈述(宋体,小四,单倍行距)
2.程序代码
3.运行结果
4.设计体会与总结
二、第二类题目(宋体,四号,加粗)
1.问题陈述(宋体,小四,单倍行距)
2.需求分析
3.概要设计
4.详细设计
5.程序代码
6.运行结果与测试
7.设计体会与总结
三、第三类题目(宋体,四号,加粗)
1.问题陈述(宋体,小四,单倍行距)
2.需求分析
3.概要设计
4.详细设计
5.程序代码
6.运行结果与测试
7.设计体会与总结
要求:(1)标题为字体黑体,小三,居中
(2)小标题为宋体,四号,加粗
(3)正文要求为宋体,小四,单倍行距
(4)每个段落缩进2个汉字(4个空格)
(5)每个人报告书不得雷同,尤其第二类与第三类题目,发现雷同者一律按不及格论处。
(6)相关内容可以参考《数据结构课程设计》指导书,但不得抄袭相关内容。
数据结构课程设计报告(完整版)参考模板

第二题:电梯模拟1、需求分析:模拟某校九层教学楼的电梯系统。
该楼有一个自动电梯,能在每层停留。
九个楼层由下至上依次称为地下层、第一层、第二层、……第八层,其中第一层是大楼的进出层,即是电梯的“本垒层”,电梯“空闲”时,将来到该层候命。
乘客可随机地进出于任何层。
对每个人来说,他有一个能容忍的最长等待时间,一旦等候电梯时间过长,他将放弃。
模拟时钟从0开始,时间单位为0.1秒。
人和电梯的各种动作均要消耗一定的时间单位(简记为t),比如:有人进出时,电梯每隔40t测试一次,若无人进出,则关门;关门和开门各需要20t;每个人进出电梯均需要25t;如果电梯在某层静止时间超过300t,则驶回1层侯命。
而题目的最终要求输出时:按时序显示系统状态的变化过程,即发生的全部人和电梯的动作序列。
2、设计2.1设计思想:(1)数据结构设计本题中的电梯的变化,是一个动态变化的过程,要在动态过程中实现正常跳转,首先要确定各种跳转的状态,因而这里我使用枚举类型来表示电梯的各种状态的:enum {up,down,stop,home}State(home);同时初始化最初状态为电梯在本垒层。
而在电梯的运行过程中对于乘客来说,显然有一个进入电梯与出电梯的队列,因而在这里我是用的链表来实现这个过程的,同时用结构体来保存该乘客的信息:typedef struct passage{int now;//乘客当前所在的位置int dis;//乘客的目地地int wait;//最长的等待的时间int waitnow;//已经等待的时间struct passage *next;}Passage;虽然电梯中的状态是由枚举类型来实现的,但是在整个程序的运行过程中,我还是为电梯设置了一个结构体类型,以便保存更多的信息:typedef struct lift{int count_C;//计数电梯已到达的层数int count_A;//系统的总时间计数器记得必须初始化为0int flag_in[High];//九个楼层有无请求的标志哪个楼层如果有请求该标志置1int num;//等待队列中的人数记得要进行初始化为0int people;//电梯中人数int flag_out[High];}Lift;(2)算法设计顾名思义本程序在运行的过程中用到的算法便是—“电梯算法”,电梯算法借鉴了磁盘寻道C-LOOK算法,即电梯向一个方向运行,直到这个方向上没有服务为止。
数据结构课程设计报告模板

数据结构课程设计报告模板篇一:数据结构课程设计报告模板课程设计说明书课程名称:数据结构与算法专业:计算机科学与技术班级: 103013姓名:徐粤玲学号:03成绩:完成日期:XX年1 月 12日任务书摘要本文的研究工作在于利用计算机模拟人脑进行下黑白棋,计算机下棋是人工智能领域中的一个研究热点,多年以来,随着计算机技术和人工智能技术的不断发展,计算机下棋的水平得到了长足的进步该程序的最终胜负是由棋盘上岗双方的棋子的个数来判断的,多的一方为胜,少的一方为负。
所以该程序主要运用的战术有削弱对手行动战术、四角优先战术、在游戏开局和中局时,程序采用削弱对手行动力战术,即尽量减少对手能够落子的位置;在游戏终局时则采用最大贪吃战术,即尽可能多的吃掉对手的棋子;而四角优先战术则是贯穿游戏的始终,棋盘的四角围稳定角,不会被对手吃掉,所以这里是兵家的必争之地,在阻止对手进角的同时,自己却又要努力的进角。
关键词:黑白棋编程设计s目录1.引言 ................................................ ................................................... .. (4)2.课题分析 ................................................ ................................................... (7)3.具体设计过程 ................................................ ....................................................8设计思路 ................................................ ...................................................8程序设计流程图 ................................................ (8)函数实现说明 ................................................ .. (12)4.程序运行结果 ................................................ ..................................................145.软件使用说明 ................................................ ..................................................186.结论 ................................................ ................................................... (21)参考文献 ................................................ ................................................... . (23)附录:源代码 ................................................................................................... .. 241.引言数据结构在计算机科学界至今没有标准的定义。
石大数据结构课程设计

石大数据结构课程设计一、课程目标知识目标:1. 让学生掌握大数据结构的基本概念、原理及分类;2. 使学生了解常见大数据结构的应用场景及其优缺点;3. 引导学生掌握线性结构、非线性结构及它们的相关算法。
技能目标:1. 培养学生运用大数据结构解决实际问题的能力;2. 提高学生分析、设计和实现大数据结构算法的技能;3. 培养学生运用数据结构进行数据处理、分析和优化的能力。
情感态度价值观目标:1. 培养学生对大数据结构学科的兴趣和热情;2. 增强学生团队合作意识,培养良好的沟通与协作能力;3. 使学生认识到数据结构在信息技术领域的重要地位,增强社会责任感。
本课程针对石大数据结构课程,结合学生年级特点,注重理论与实践相结合,培养学生的知识运用能力和实际操作技能。
课程目标具体、可衡量,旨在使学生通过学习,能够熟练掌握大数据结构相关知识,为后续相关课程和实际工作打下坚实基础。
同时,课程强调情感态度价值观的培养,激发学生的学习兴趣,提高他们的综合素质。
二、教学内容1. 大数据结构基本概念:数据元素、数据项、数据结构类型;2. 线性结构:数组、链表、栈、队列、字符串;3. 非线性结构:树(二叉树、平衡树、堆)、图(有向图、无向图、最短路径算法、最小生成树算法);4. 常见大数据结构应用场景分析:搜索引擎、推荐系统、社交网络、云计算;5. 数据结构算法分析:时间复杂度、空间复杂度、算法优化;6. 大数据结构在实际应用中的优化策略:存储优化、查询优化、索引优化。
教学内容依据课程目标进行选择和组织,确保科学性和系统性。
教学大纲明确教学内容安排和进度,具体划分为以下六个方面:1. 基本概念与分类:第1章,1课时;2. 线性结构:第2-3章,4课时;3. 非线性结构:第4-5章,6课时;4. 常见应用场景分析:第6章,2课时;5. 算法分析:第7章,3课时;6. 优化策略:第8章,2课时。
教学内容与课本紧密关联,结合教学实际,旨在帮助学生系统掌握大数据结构知识体系,为实际应用打下坚实基础。
《数据结构》课程设计报告模板模

《数据结构》课程设计报告设计题目航班信息的查询与检索专业电子信息工程班级姓名学号完成日期2010-6-28目录1. 问题描述………………………………………………页码2. 系统设计………………………………………………页码3. 数据结构与算法描述…………………………………页码4. 测试结果与分析………………………………………页码5. 总结…………………………………………………页码6. 参考文献………………………………………………页码附录程序源代码…………………………………………页码航班信息的查询与检索1. 问题描述:这学期,我们在余先伦老师的带领下,大致学习了一下《数据结构》,实现了简单的数据结构算法。
现在,我们将完成简单的数据结构课程设计。
在数据结构的学习中我们知道,排序和查找是在数据结构中使用频率非常高。
为了能够快速有效地进行查询与检索,我们需要对记录按关键字进行排列。
选择《航班信息查询与检索》这个课题,主要是因为当今时代的需求。
随着科技与经济的发展,当今乘飞机的人越来越多,这时,快速的了解各类航班的班次、时间、价格及机型的信息将备受关注。
在我开发的这个《航班信息查询与检索》这个系统中,航班号将成为关键字,而且是具有结构特点的一类关键字。
通过关键字的键入,你将获得你所需要的航班的全部信息。
2. 系统设计2.1 设计目标:通过一定的数据结构,实现对信息的查询与检索并按要求输出。
试设计一个航空客运定票系统。
[基本要求]每条航线所涉及的信息有:终点站名、航班号、飞机号、飞机周日(星期几)、乘员定额、余票量、订定票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需数量)。
系统能实现的操作和功能如下:1)查询航线:根据客户提出的终点站名输出如下信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额;2)承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若有余票,则为客户办理订票手续,输出座位号;若已满员或余票少余订票额,则需重新询问客户要求。
《数据结构》课程设计报告范本(doc 8页)

《数据结构》课程设计报告范本(doc 8页)《数据结构》课程设计报告一、课程设计的内容、要求1 线性表的另一种实现。
对顺序表空间被耗尽问题的一个解决办法是:当数组溢出时,用一个更大的数组替换该数组。
一个较好的法则是:当出现溢出时,数组长度加长一倍具有较高的时间和空间效率。
参照教材中顺序表的有关内容,按上面的要求实现顺序表,并测试当数组溢出时你的实现的运作情况。
二、所采用的数据结构ADT List{数据对象: D = {a i|a i ∈ElemSet, i=1,2…n>=0}数据关系: R1={<a i-1, a i>|a i-1, a i∈D, i=1,2,…,n}基本操作:void IniList(SqList& L);void DestroyList(SqList& L);bool ListEmpty(SqList L);int ListLength(SqList L);void GetElem(SqList L, int i, Elem &e);bool PriorElem(SqList L, Elem cur_e, Elem &pre_e);bool NextElem(SqList L, Elem cur_e, Elem &next_e);void ListInsert(SqList &L, int i, Elem e);void ListDelete(SqList &L, int i);void ClearList(SqList& L);}三、主要模块(或函数)及其功能typedef struct LIST{ElemType *data;int size;int max_size;}LIST;void InitList(LIST *list)//初始化{list->data = (int*)malloc(sizeof(ElemType)*INIT_SIZE);list->size = 0;list->max_size = INIT_SIZE;}void DestroyList(LIST &list){}bool NextElem(LIST list,int cur_e,int &next_e)//后继{if(cur_e < 0 || cur_e > list.size) return false;else{next_e = cur_e + 1;return true;}}void Insert(LIST *list,ElemType value){if(list->size>=list->max_size){int i;ElemType *temp = (int*)malloc(sizeof(ElemType)*list->size*2);cout<<endl<<"线性表原容量改变:原大小为"<<list->max_size;for(i=0;i<list->size;i++){temp[i] = list->data[i];}free(list->data);list->data = temp;list->max_size*=2;cout<<"改变后大小"<<list->max_size<<endl;}list->data[list->size] = value;list->size++;}void Insert_Back(LIST *list,int idx,ElemType value){if(list->size>=list->max_size){int i;ElemType *temp = (int*)malloc(sizeof(ElemType)*list->size*2);cout<<endl<<"线性表原容量改变:原大小为"<<list->max_size;for(i=0;i<list->size;i++){temp[i] = list->data[i];}free(list->data);list->data = temp;list->max_size*=2;cout<<"改变后大小"<<list->max_size<<endl;}if(idx>list->size){list->data[list->size] = value;}else{int i;for(i=list->size;i>idx;i--){list->data[i] = list->data[i-1];}list->data[idx] = value;}list->size++;}void ListDelete(LIST *list,int i,ElemType *e)//删除一个元素{int j;*e=list->data[i];for(j=i+1;j<=list->size-1;j++)list->data[j-1]=list->data[j];list->size--;}void Print_list(LIST *list){int i;if(list->size == 0){cout<<"当前线性表内没有元素。
《数据结构》课程设计报告

《数据结构》课程设计报告一、课程目标《数据结构》课程旨在帮助学生掌握计算机科学中数据结构的基本概念、原理及实现方法,培养其运用数据结构解决实际问题的能力。
本课程目标如下:1. 知识目标:(1)理解数据结构的基本概念,包括线性表、栈、队列、串、数组、树、图等;(2)掌握各类数据结构的存储表示和实现方法;(3)了解常见算法的时间复杂度和空间复杂度分析;(4)掌握排序和查找算法的基本原理和实现。
2. 技能目标:(1)能够运用所学数据结构解决实际问题,如实现字符串匹配、图的遍历等;(2)具备分析算法性能的能力,能够根据实际问题选择合适的算法和数据结构;(3)具备一定的编程能力,能够用编程语言实现各类数据结构和算法。
3. 情感态度价值观目标:(1)培养学生对计算机科学的兴趣,激发其探索精神;(2)培养学生团队合作意识,提高沟通与协作能力;(3)培养学生面对问题勇于挑战、善于分析、解决问题的能力;(4)引导学生认识到数据结构在计算机科学中的重要地位,激发其学习后续课程的兴趣。
本课程针对高年级学生,课程性质为专业核心课。
结合学生特点,课程目标注重理论与实践相结合,强调培养学生的实际操作能力和解决问题的能力。
在教学过程中,教师需关注学生的个体差异,因材施教,确保课程目标的达成。
通过本课程的学习,学生将具备扎实的数据结构基础,为后续相关课程学习和职业发展奠定基础。
二、教学内容根据课程目标,教学内容主要包括以下几部分:1. 数据结构基本概念:线性表、栈、队列、串、数组、树、图等;教学大纲:第1章 数据结构概述,第2章 线性表,第3章 栈和队列,第4章 串。
2. 数据结构的存储表示和实现方法:教学大纲:第5章 数组和广义表,第6章 树和二叉树,第7章 图。
3. 常见算法的时间复杂度和空间复杂度分析:教学大纲:第8章 算法分析基础。
4. 排序和查找算法:教学大纲:第9章 排序,第10章 查找。
教学内容安排和进度如下:1. 第1-4章,共计12课时,了解基本概念,学会使用线性表、栈、队列等解决简单问题;2. 第5-7章,共计18课时,学习数据结构的存储表示和实现方法,掌握树、图等复杂结构;3. 第8章,共计6课时,学习算法分析基础,能对常见算法进行时间复杂度和空间复杂度分析;4. 第9-10章,共计12课时,学习排序和查找算法,掌握各类算法的实现和应用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中国石油大学(北京)远程教育学院《数据结构》课程设计报告课程设计题目学生姓名学号专业班级2019 年月题目要求:设计一个稀疏矩阵计算器,实现两个稀疏矩阵的加法、减法、乘法以及矩阵的转置运算。
采用菜单为应用程序的界面,用户通过对菜单进行选择,分别实现矩阵的相加、相减、相乘以及矩阵转速运算。
1需求分析1. 稀疏矩阵是指稀疏因子小于等于0.5的矩阵。
利用“稀疏”特点进行存储和计算可以大大节省存储空间,提高计算效率。
实现一个能进行稀疏矩阵基本运算的运算器。
2. 以“带行逻辑链接信息”的三元组顺序表表示稀疏矩阵,实现矩阵转置,以及两个矩阵的加、减、乘的运算。
稀疏矩阵的输入形式采用三元组表示,运算结果以阵列形式列出。
3. 演示程序以用户和计算机的对话方式进行,数组的建立方式为边输入边建立。
首先输入矩阵的行数和列数,并判别给出的两个矩阵的行列数是否与所要求的运算相匹配。
4. 程序可以对三元组的输入属性不加以限制;根据对矩阵的行列,三元组作之间插入排序,从而进行运算时,不会产生错误。
5. 在用三元组表示稀疏矩阵时,相加、相减和相乘所产生的结果矩阵另外生成。
6. 运行环境:VC6.0++。
2概要设计稀疏矩阵元素用三元组表示:typedef struct{int i; //非零元的行下标int j; //非零元的列下标int e; //矩阵非零元}Triple;稀疏矩阵采用三元组顺序表存储:#define MSXSIZE 12500 //假设非零元个数的最大值为200#define MAXRC 10 //假定矩阵的最大行数为10typedef struct{int mu ; //矩阵的行数int nu ; //矩阵的列数int tu ; //矩阵的非零元素个数Triple data[MAXSIZE+1]; //非零元三元组表,data[0]没有用int rpos[MAXRC+1]; //各行第一个非零元素的位置表}Tabletype;系统主要函数及功能如下:Menu( ):主控菜单,接收用户的选项;Input_Matrix( ):输入矩阵;Print_matrix( ):输出矩阵;Cal_matrix( ):计算矩阵每行第一个非零元在三元组中的位序号;TransposeMatrix( ):矩阵转置;Add_Matrix( ):矩阵加法运算;Sub_Matrix( ):矩阵减法运算;Multi_Matrix( ):矩阵乘法运算。
模块的调用关系如图1所示。
图1 程序调用模块示意图3详细设计1. 主函数设计//*****************************************//* 矩阵运算主函数*//*****************************************主函数中,实现用户菜单菜单的打印,并根据用户的选项执行相应的功能,主函数力求简洁、清晰。
void main( ){num=Menu(); //打印主菜单while(num){switch(num){case 1:Multi_Matrix(); //矩阵相乘break;case 2:TransposeMatrix(); //矩阵转置break;case 3:Add_Matrix(); //矩阵加法break;case 4:Sub_Matrix(); //矩阵减法case 0:break;}//switchnum=Menu();}//while}2. 主菜单设计主控菜单是用来输出提示信息和处理输入,此函数返回用户的选项,提供给main函数中的switch语句。
对于不符合要求的选项,提示输入错误并要求用户重新输入。
将此函数与main函数合在一起,编译运行程序,即可检查并验证菜单选项是否正确。
主菜单如下://*****************************************//* 打印主控菜单函数*//*****************************************int menu( ){printf("\n 主菜单");printf("\n*********************");printf("\n 1. 矩阵乘法");printf("\n 2. 矩阵转置");printf("\n 3. 矩阵加法");printf("\n 4. 矩阵减法");printf("\n 0. 退出");printf("\n*********************");scanf("%d",&num);while(num<0||num>4) //输入非法,重新输入scanf("%d",&num);return num;}3. 矩阵乘法运算函数//*****************************************//* 矩阵乘法运算算法*//*****************************************Status Multi_Matrix(){Input_Matrix(&a); //输入矩阵aInput_Matrix(&b); //输入矩阵bCal_matrix(&a); //计算矩阵a每行第一个非零元的位序号Cal_matrix(&b); //计算矩阵b每行第一个非零元的位序号if (a.nu!=b.mu) //不符合矩阵乘法条件,不能相乘return ERROR;c.mu=a.mu; //对矩阵c初始化c.nu=b.nu;c.tu=0;if(a.tu*b.tu!=0){for(arow=1;arow<=a.mu;arow++){ /*处理矩阵a的每一行*/for (p=1;p< MAXRC+1;p++) /*当前行各元素累加器清零*/ctemp[p]=0;c.rpos[arow]=c.tu+1;if(arow<a.mu )tp=a.rpos [arow+1];elsetp=a.tu +1;for(p=a.rpos[arow]; p<tp;p++){ //求得c中第crow行的非零元brow=a.data[p].j;if(brow<b.nu)t=b.rpos[brow+1];elset=b.tu+1;for (q=b.rpos[brow];q<t;q++){ccol=b.data[q].j; /*乘积元素在矩阵c中的列号*/ctemp[ccol]+=a.data[p].e*b.data[q].e;} /*for q*/}//for pfor(ccol=1;ccol<=c.nu;ccol++)if(ctemp[ccol]) /*压缩存储该行非零元*/{if((c.tu)>MAXSIZE)exit(1);c.tu++;c.data[c.tu].i=arow;c.data[c.tu].j=ccol;c.data[c.tu].e=ctemp[ccol];}/*end if*/}/*for arrow*/}/*if*/Print_matrix(a);Print_matrix(b);Print_matrix(c);}4. 矩阵转置算法//*****************************************//* 矩阵转置算法*//*****************************************void TransposeMatrix(){Input_Matrix(&a); //输入矩阵ab.mu=a.nu;b.nu=a.mu;b.tu=a.tu;if(b.tu){q=1; /*b.data的下标*/for(col=1;col<=a.nu;col++) //对a的每一列for(p=1;p<=a.tu;p++) /*p为a的下标*/if( a.data[p].j==col){ //寻找矩阵a中列为col的非零元b.data[q].i=a.data[p].j;b.data[q].j=a.data[p].i;b.data[q].e=a.data[p].e;q++;}//if(p)}//if(b.tu)Print_matrix(b); //输出a的转置矩阵}5. 矩阵加法算法//*****************************************//* 矩阵加法运算函数*//* c=a+b *//*****************************************Status Add_Matrix(){Input_Matrix(&a); //输入矩阵aInput_Matrix(&b); //输入矩阵bif(a.mu !=b.mu ||a.nu !=b.nu ) //不满足矩阵加法条件return ERROR;c.mu =a.mu ;c.nu =a.nu ;ta=1; tb=1; tc=1;if(a.tu *b.tu !=0){while((ta<=a.tu) && (tb<=b.tu)){if(a.data[ta].i==b.data[tb].i){if(a.data[ta].j==b.data[tb].j){temp=a.data[ta].e+b.data[tb].e;if(temp!=0){c.data[tc].i=a.data[ta].i;c.data[tc].j=a.data[ta].j;c.data[tc].e=temp;tc++;}//end if (temp)ta++; tb++;}//end ifelse{if(a.data[ta].j<b.data[tb].j){c.data[tc].i=a.data[ta].i;c.data[tc].j=a.data[ta].j;c.data[tc].e=a.data[ta].e;ta++; tc++;}//end of else ifelse{c.data[tc].i=b.data[tb].i;c.data[tc].j=b.data[tb].j;c.data[tc].e=b.data[tb].e;tb++; tc++;}//}}//end ifelse{if(a.data[ta].i<b.data[tb].i){c.data[tc].i=a.data[ta].i;c.data[tc].j=a.data[ta].j;c.data[tc].e=a.data[ta].e;tc++; ta++;}else{c.data[tc].i=b.data[tb].i;c.data[tc].j=b.data[tb].j;c.data[tc].e=b.data[tb].e;tc++; tb++;}}}//whilewhile(ta<=a.tu){ //处理a中剩余非零元c.data[tc].i=a.data[ta].i;c.data[tc].j=a.data[ta].j;c.data[tc].e=a.data[ta].e;tc++; ta++;}while(tb<=b.tu){ //处理b中剩余非零元c.data[tc].i=b.data[tb].i;c.data[tc].j=b.data[tb].j;c.data[tc].e=b.data[tb].e;tc++; tb++;}}//c.tu=tc;Print_matrix(c);}6. 矩阵输入算法用于输入矩阵的行数、列数、非零元个数,以及每个非零元素。