文档介绍:南京信息工程大学实验(实****报告
实验(实****名称顺序表的基本操作实验(实****日期 2012/10/19 得分指导教师
系计软院专业网络工程年级 2011 班次 1 姓名管超学号 20111346032
顺序表的基本操作
实验目的
掌握线性表的顺序表基本操作:建立、插入、删除、查找、合并、打印等运算。
实验准备
奔腾2计算机或以上机型
Visual C++
实验内容
建立一个含n个数据元素的顺序表并输出该表中各元素的值及顺序表的长度。
往该顺序表中第i位置插入一个值为e的数据元素。
从该顺序表中第i位置删除一个数据元素,由e返回。
从该顺序表中查找一个值为e的数据元素,若找到则返回该数据元素的位置,否则返回“没有找到”。
实验代码
#include< >
#include< >
#include< >
#include< >
#define LIST_INIT_SIZE 10
#define INCREMENT 2
typedef struct
{
int *elem;
int length;
int listsize;
}SqList;
//初始化顺序表
void Init_List_Sq(SqList &L)
{
= (int *)malloc(LIST_INIT_SIZE*sizeof(int));
if (! )
{
printf(" Memory OVERFLOW!\n");
exit(0);
}
= 0;
= LIST_INIT_SIZE;
}
//在顺序表中插入e
void InsertList(SqList &L, int i, int &e)
{
int *newbase, *p, *q;
if (i<1 || i>+1)
{
printf(" Location ERROR!\n");
exit(0);
}
if ( >= )
{
newbase = (int *)realloc(, (+INCREMENT)*sizeof(int));
if (! newbase)
{
printf(" Memory OVERFLOW!\n");
exit(0);
}
= newbase;
+= INCREMENT;
}
q = &([i-1]);
for (p = &([-1]); p>=q; --p)
{
*(p+1) = *p;
}
*q = e;
++;
}
//在顺序表中删除e
void DeleteList(SqList &L, int i, int &e)
{
int *p, *q;
if ((i<1) || (i>))
{
printf(" Location