【 问题2描述 】
本例要求实现一个简易的商品信息管理系统,其中商品信息包括商品代码、品名、单价、库存量等。要求系统能提供建立、查询、删除和增加商品信息等功能。
【 问题1和2分析 】
程序设计的实质是对实际问题选择一种合适的数据存储结构,并设计基于此结构上的一批高效的处理算法。因此,首先需要分析实际问题中需要处理的数据对象的特点。问题1中需要处理的数据是学生信息。学生信息表见表2-1。
表2-1 学生信息表
问题2中需要处理的数据是商品信息。商品信息表见表2-2。
表2-2 商品信息表
表2-1中每行列出了一名学生的信息,表2-2与之类似,每行列出了一个商品的信息。两个不同问题,两种不同表格,表格中的每一行都可以称为数据元素。如果将表中的每个数据元素抽象成一个个的结点,则两张表格元素之间的关系都可抽象成如图2-1所示的情形。
图2-1 数据元素间的关系
为了实现导学问题的需求,需要回答如下问题:
1)数据元素之间存在什么关系?
2)如何存储这些数据元素?
3)如何按需求处理这些数据元素?
从图2-1中可以看出,各元素之间的重要特点是存在一对一的线性关系,具有这种关系的数据元素就构成了本章要研究的一类典型的数据结构——线性表。基于C语言程序设计的基础,存储这些数据元素的方法主要是两种:数组(顺序存储)和链表(链式存储)。问题描述中要完成的功能主要是对数组或链表进行查找、删除、插入等基本操作。
本章2.1节将介绍线性表的抽象定义、存储方式以及相应基本操作的实现,2.2节完成对导学问题1的实现;2.3节介绍顺序表和链表的合并、逆置等较复杂的操作实现。