- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验一 顺序表的基本操作
PAGE \* MERGEFORMAT7
南京信息工程大学 实验(实习)报告
实验(实习)名称 顺序表的基本操作 实验(实习)日期 2012/10/19 得分 指导教师
系 计软院 专业 网络工程 年级 2011 班次 1 姓名 管超 学号 20111346032
顺序表的基本操作
实验目的
掌握线性表的顺序表基本操作:建立、插入、删除、查找、合并、打印等运算。
实验准备
奔腾2计算机或以上机型
Visual C++ 6.0
实验内容
建立一个含n个数据元素的顺序表并输出该表中各元素的值及顺序表的长度。
往该顺序表中第i位置插入一个值为e的数据元素。
从该顺序表中第i位置删除一个数据元素,由e返回。
从该顺序表中查找一个值为e的数据元素,若找到则返回该数据元素的位置,否则返回“没有找到”。
实验代码
#include stdio.h
#include stdlib.h
#include conio.h
#include string.h
#define LIST_INIT_SIZE 10
#define INCREMENT 2
typedef struct
{
int *elem;
int length;
int listsize;
}SqList;
//初始化顺序表
void Init_List_Sq(SqList L)
{
L.elem = (int *)malloc(LIST_INIT_SIZE*sizeof(int));
if (! L.elem)
{
printf( Memory OVERFLOW!\n);
exit(0);
}
L.length = 0;
L.listsize = LIST_INIT_SIZE;
}
//在顺序表中插入e
void InsertList(SqList L, int i, int e)
{
int *newbase, *p, *q;
if (i1 || iL.length+1)
{
printf( Location ERROR!\n);
exit(0);
}
if (L.length = L.listsize)
{
newbase = (int *)realloc(L.elem, (L.listsize+INCREMENT)*sizeof(int));
if (! newbase)
{
printf( Memory OVERFLOW!\n);
exit(0);
}
L.elem = newbase;
L.listsize += INCREMENT;
}
q = (L.elem[i-1]);
for (p = (L.elem[L.length-1]); p=q; --p)
{
*(p+1) = *p;
}
*q = e;
++L.length;
}
//在顺序表中删除e
void DeleteList(SqList L, int i, int e)
{
int *p, *q;
if ((i1) || (iL.length))
{
printf( Location ERROR\n);
exit(0);
}
p = (L.elem[i-1]);
e = *p;
q = L.elem + L.length -1;
for (++p; p=q; ++p)
{
*(p-1) = *p;
}
--L.length;
}
//在顺序表中查找e
int LocateElem(SqList L, int e)
{
int i = 1;
int *p = L.elem;
while (p != L.elem+L.length)
{
if (*p == e)
{
return i;
}
else
{
++i;
++p;
}
}
return 0;
}
//输出顺序表
void Output(SqList L)
{
int *p = L.elem;
printf( List: %d, *p);
++p;
while (p != L.elem+L.length)
{
printf( - %d, *p);
++p;
}
printf(\n);
}
int main()
{
char option;
int address, data;
SqList List;
Init_List_Sq(List);
while (1)
{
printf(\n);
printf(********************\n);
prin
文档评论(0)