- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序设计挑战式课程设计报告
- PAGE 13 -
作业名称:有序线性表学 院:教育实验学院班 级:HC001505学 号:2015300074姓 名:祖陆晗团队组成:祖陆晗
西北工业大学
DATE \@ yyyy年M月d日 \* MERGEFORMAT 2016年1月8日
请填写以下十项内容,将表格按页对齐(插入空行),勿删除任何部分。
1、问题与背景(描述程序所要解决的问题或应用背景)
数组是程序设计中常用的数据结构,但使用数组时必须先定义好数组长度,这个长度一经定义就是固定不变的,如果事先难以确定元素个数,则必须把数组长度定义的足够大,这将占用许多内存。另一方面,在数组中若要插入或删除某个元素,需要移动插入点或删除点后面的所有的数组元素,这将占用大量的时间。数组的这些限制给多数据的处理带来了许多不便。2、开发工具(列出所使用的开发工具和第3方开发库)
Visual C++ 6.03、主要功能(详细说明程序的功能)
本程序是用链表实现有序线性表的程序,可实现的基本功能包括:置空,插入,查找,输出和退出,程序采用菜单界面,用户只需选择选项即可实现相应的功能。按照提示进行操作,可以实现诸如置空,删除等操作,从而实现数据的处理。为了更方便的处理多数据问题,需要引入链表这种数据结构。而本程序正是通过链表,指针,数组,结构体等数据结构和相关文件函数,对数组不易实现的功能进行了整合,相对于数组,本程序可以处理不知道具体量的数据,且可以方便的实现置空表,插入,查找,输出等功能。
4、设计内容(详细描述解决问题的原理和方法、算法、数据结构等)
1.加入必要的头文件:
#include stdio.h
#include malloc.h
#include stdlib.h
#include string.h
2.使用结构体类型定义链表:
struct num
{
float data;struct num *next;
}num;
3.定义输出函数:(具体介绍在函数模块中展示)
从main 函数传递的head 指针的数据开始,依次输出链表数据,直到遇到NULL 为止。
4.定义置空表函数:
由 main 函数传递head 指针,从head 指针到链表节点末尾依次删除各个数据,同时释
放内存空间。
5.定义插入函数:
采用静态查找的方法,从 main 函数传递的head 指针的数据开始,依次比较链表中data成员与searchnum 的大小,采用while 循环实现顺序查找,保证插入数据后,整个链表data 成员依然从大到小排列。
6.定义查找函数:
采用静态查找的方法,从main 函数传递的head 指针的数据开始,依次比较链表中data成员与searchnum 的大小,采用while 循环实现顺序查找,如果找到数据就输出数据所在的位置,否则提示没有找到。
7.定义创建函数:
链表结构的优势在于可以动态的控制结构的大小,可以在内存中不连续的存储。本函数的功能在于不断创建新的节点知道满足用户的要求为止(用户可自定义结束条件)。这一过程通过while循环和malloc()函数分配内存实现。定义结构体链表指针p 始终指向新开辟的节点,p2 始终指向下一节点,通过循环完成链表的创建工作。本函数为无参函数,调用结束后向main 函数返回head 头指针。
8.定义退出函数:
通过简单switch语句退出与确认退出。防止误操作。
9.定义欢迎界面
对程序及制作人简单介绍。5、程序文件与工程名称(标出程序中所有文件名、工程名称及其说明)
文件夹:程序运行截图
文本文档:个人信息
.C文件:有序线性表
应用程序:有序线性表//主程序
Word文件:有序线性表程序报告6、函数模块(程序中各个函数的原型声明及其说明)
1.插入函数:
原型声明:struct num *insert(struct num *head)
说明:采用静态查找的方法,从main 函数传递的head 指针的数据开始,依次比较链表中data成员与searchnum 的大小,采用while 循环实现顺序查找,保证插入数据后,整个链表data 成员依然从大到小排列。
2.创建函数:
原型声明:struct num *creat(void)
说明:链表结构的优势在于可以动态的控制结构的大小,可以在内存中不连续的存储。本
函数的功能在于不断创建新的节点知道满足用户的要求为止(用户可自定义结束条件)。这一过程通过while。循环和malloc()函数分配内存实现。定义结构体链表指针p 始终指向
文档评论(0)