C语言大作业 有序线性表概述 下载本文

程序设计挑战式课程设计极限挑战挑战,不是为着征服自然,而是为着突破自我,超越自我生命有极限,思想无极限,高度有极限,境界无极限作业名称:学 院:班 级:学 号:姓 名:团队组成:有序线性表 教育实验学院 HC001505 2015300074 祖陆晗 祖陆晗

西北工业大学 2018年10月23日

程序设计挑战式课程设计报告

请填写以下十项内容,将表格按页对齐(插入空行),勿删除任何部分。 1、问题与背景(描述程序所要解决的问题或应用背景)

数组是程序设计中常用的数据结构,但使用数组时必须先定义好数组长度,这个长度一经定义就是固定不变的,如果事先难以确定元素个数,则必须把数组长度定义的足够大,这将占用许多内存。另一方面,在数组中若要插入或删除某个元素,需要移动插入点或删除点后面的所有的数组元素,这将占用大量的时间。数组的这些限制给多数据的处理带来了许多不便。 2、开发工具(列出所使用的开发工具和第3方开发库)

Visual C++ 6.0 3、主要功能(详细说明程序的功能)

本程序是用链表实现有序线性表的程序,可实现的基本功能包括:置空,插入,查找,输出和退出,程序采用菜单界面,用户只需选择选项即可实现相应的功能。按照提示进行操作,可以实现诸如置空,删除等操作,从而实现数据的处理。为了更方便的处理多数据问题,需要引入链表这种数据结构。而本程序正是通过链表,指针,数组,结构体等数据结构和相关文件函数,对数组不易实现的功能进行了整合,相对于数组,本程序可以处理不知道具体量的数据,且可以方便的实现置空表,插入,查找,输出等功能。 4、设计内容(详细描述解决问题的原理和方法、算法、数据结构等) 1.加入必要的头文件: #include - 2 -

程序设计挑战式课程设计报告

#include #include #include 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、程序文件与工程名称(标出程序中所有文件名、工程名称及其说明)

文件夹:程序运行截图 - 3 -