1、数据结构课程设计报告 一 课程设计题目:链表存储方式下的数据的插入,删除和搜索。 二 课程设计内容描述: 需求 以动态演示的形式向用户展示在链表存储方式下的数 据记性插入,删除和搜索的实现方法和内部过程。 输入 以系统自动生成的方式新建链表,可以选择有序或无 序生成,在面板显示出链表,链结点以箭头连接,以带色的方框内的 数字为数据,需要生成特定链表可选择数据插入在链表首。 输出 在面板显示及显示三种操作(插入,查找和删除)的具 体方法和流程, 显示方式以指示箭头来表示对链表内容或位置的查询。 插入或删除操作则在图中画出节点增加或者减少的过程。 功能 该程序可实现单向链表的插入删除和查找过程的演
2、示, 以动态的显示展示其操作过程。 测试 通过输入框中用户输入的数据和七个按钮的操作选择 相应的功能,可实现动态演示。 三 思想和算法: 对于演示可分为用户界面和动画演示两个部分在用户界面添 加按钮,输入框,单项选择和演示区域,演示区域将使用动画演示进 行展示。 在用户界面分别给按钮及输入框等添加监听器, 通过调用动 画演示方法以实现按钮功能。动画演示通过创建 show 类实现链结点 和创建 showgroup 类实现链结点的的动态显示。其内部引用 awt.Graphics 类实现画线等功能。 对于三种操作来说, 插入和删除的实现都必须依靠查找的功能,因 此, 在代码中有很大一部分是可以通用的
3、, 实现查找功能可分为两种: 按用户输入的数据查找和按用户输入的位置查找,判定条件分别是 show 类中的值和 showgroup 中的 curIn 值。 插入操作需要在已建好的 链表中增加一个节点, 这就需要插入点以后的节点向后移动一个位置, 将插入的节点放在该位置上, 而删除是将插入点以后的节点向前移动 一个位置。在 showgroup 类中,定义链表数据的数组以存储数据,将 数组内的数据分别赋给各个节点,通过创建链表的方法创建链表。 四使用说明 1运行 打开 eclipse,导入工程,运行后,将显示如下界面 界面中有七个按钮,一个单选项和两个输入框 连续单击“新建” ,按提示操作 选择无
4、序,出现以下界面 或者选择有序则出现以下界面 当输入有误时,则会有提示 新建功能完成 位置查找功能 连续单击“数据查找” ,按提示操作 数据查找功能 输入位置或数据不存在时 删除操作 按位置删除 其他操作不再赘述。 五调试说明 导入工程后, 打开所有代码, 主程序在 link.linklist, 运行即可。 六代码 Linklist 类 package link; import java.applet.Applet; import java.awt.*; import java.awt.event.*; import java.text.NumberFormat; import java.ut
5、il.EventObject; public class linklist extends Applet implements Runnable, ActionListener, ItemListener public void init() / 添加panel setLayout(new FlowLayout(); Panel panel = new Panel(); add(panel); panel.setLayout(new FlowLayout(); Panel panel1 = new Panel(); panel.add(panel1); panel1.setLayout(new
6、 FlowLayout(0); newButton = new Button(“新建“); panel1.add(newButton); newButton.addActionListener(this); / 插入按钮设置 insposbutton = new Button(“位置插入“); panel1.add(insposbutton); insposbutton.addActionListener(this); insdatabutton = new Button(“数据插入“); panel1.add(insdatabutton); insdatabutton.addActionListener(this); / 查找按钮设置 finddatabutton = new Button(“数据查找“); panel1.add(finddatabutton); finddatabutton.addActionListener(this); findposbutton = new Button(“位置查找“); panel1.add(fin