作业名称:有序线性表学 院:教育实验学院班 级:HC001505学 号:2015300074姓 名:祖陆晗团队组成:祖陆晗
西北工业大学
2016年1月8日
请填写以下十项内容,将表格按页对齐(插入空行),勿删除任何部分。
1、问题与背景(描述程序所要解决的问题或应用背景)
数组是程序设计中常用的数据结构,但使用数组时必须先定义好数组长度,这个长度一经定义就是固定不变的,如果事先难以确定元素个数,则必须把数组长度定义的足够大,这将占用许多内存。另一方面,在数组中若要插入或删除某个元素,需要移动插入点或删除点后面的所有的数组元素,这将占用大量的时间。数组的这些限制给多数据的处理带来了许多不便。2、开发工具(列出所使用的开发工具和第3方开发库)
Visual C++ 6.03、主要功能(详细说明程序的功能)
本程序是用链表实现有序线性表的程序,可实现的基本功能包括:置空,插入查找,输出和退出,程序采用菜单界面,用户只需选择选项即可实现相应的功能。
#include
#include
#include
#include
2.使用结构体类型定义链表:
struct num
{
float data;struct num *next;
}num;
3.定义输出函数:(具体介绍在函数模块中展示)
从main 函数传递的head 指针的数据开始,依次输出链表数据,直到遇到NULL 为止。
4.定义置空表函数:
由 main 函数传递head 指针,从head 指针到链表节点末尾依次删除各个数据,同时释
放内存空间。
采用静态查找的方法,从 main 函数传递的head 指针的数据开始,依次比较链表中data成员与searchnum 的大小,采用while 循环实现顺序查找,保证插入数据后,整个链表data 成员依然从大到小排列。6.定义查找函数
采用静态查找的方法,从main 函数传递的head 指针的数据开始,依次比较链表中data成员与searchnum 的大小,采用while 循环实现顺序查找,如果找到数据就输出数据所在的位置,否则提示没有找到。7.定义创建函数
链表结构的优势在于可以动态的控制结构的大小,可以在内存中不连续的存储。本函数的功能在于不断创建新的节点知道满足用户的要求为止(用户可自定义结束条件)。这一过程通过while循环和malloc()函数分配内存实现。定义结构体链表指针p 始终指向新开辟的节点,p2 始终指向下一节点,通过循环完成链表的创建工作。本函数为无参函数,调用结束后向main 函数返回head 头指针。
通过简单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 始终指向新开辟的节点,p2 始终指向下一节点,通过循环完成链表的创建工作。本函数为无参函数,调用结束后向main 函数返回head 头指针。
原型声明:struct num *search(struct num *head)
说明:采用静态查找的方法,从main 函数传递的head 指针的数据开始,依次比较链表中data
成员与searchnum 的大小,采用while 循环实现顺序查找,如果找到数据就输出数据所在的位置,否则提
示没有找到。
原型声明:struct num *print(struct num *head)
说明:从main 函数传递的head 指针的数据开始,依次输出链表数据,直到遇到NULL 为止。