教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 学前教育 >

数据结构与算法实验报告

来源:网络收集 时间:2026-07-22
导读: 数据结构实验报告 题目: 线性表 班级:网络工程1401班 学号: 1408020106 指导教师: 高峰 日期: 2016/7/6 实验一:线性表 一:实验要求 掌握数据结构中线性表的基本概念。 熟练掌握线性表的基本操作:创建、插入、删除、查找、输出、求长度及合并并运算在

数据结构实验报告

题目: 线性表 班级:网络工程1401班 学号: 1408020106 指导教师: 高峰 日期: 2016/7/6

实验一:线性表

一:实验要求

掌握数据结构中线性表的基本概念。

熟练掌握线性表的基本操作:创建、插入、删除、查找、输出、求长度及合并并运算在顺序存储结构撒谎能够的实验。 熟练掌握链表的各种操作和应用。

二.实验内容

1. 编程实现在顺序存储的有序表中插入一个元素(数据类型为整型)。

2. 编程实现把顺序表中从i个元素开始的k个元素删除(数据类型为整型)。

三:实验过程及步骤

源代码:

#include #include

#define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 typedef struct{ int * elem; int length; int listsize; }SqList; //SqList sq;

void InitList_Sq(SqList *sq) //初始化列表 {

sq->elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int)); sq->length=0;

sq->listsize=LIST_INIT_SIZE; printf(\申请空间成功---!\\n\}

void GetElem(SqList *sq,int i)//获取第i位置元素的值 {

int *p;

p=&(sq->elem[i-1]); printf(\printf(\}

int ListInsert_Sq(SqList *sq,int i,int a)//在i位置之前插入a {

int *p,*q;

if(i<=0||i>sq->length+1) {

printf(\位置不合法---!\\n\

return 0; }

if(sq->length>=sq->listsize) {

int* newbase=(int *)realloc(sq->elem,(sq->listsize+LISTINCREMENT)*sizeof(int)); if(!newbase) {

printf(\申请空间溢出\\n\return 0; }

sq->elem=newbase;

sq->listsize+=LISTINCREMENT; }

p=&(sq->elem[i-1]);//p指向第i位置的元素

q=&(sq->elem[sq->length-1]);//q指向最后一个元素 for(;q>=p;--q) *(q+1)=*q; *p=a;

++sq->length; return 1; }

int ListDelete_Sq(SqList *sq,int i) //删除i位置上的值 {

int *p,*q;

if(i<1||i>sq->length) return 0;

p=&(sq->elem[i-1]);//p指向第i位置的元素 q=sq->elem+sq->length-1;//q指向最后一个元素 for(++p;p<=q;++p) {

*(p-1)=*p; }

--sq->length; return 1; }

void visit(SqList *sq)//输出数据 {

int i=1;

for(;i<=sq->length;i++) {

int *p;

p=&sq->elem[i-1]; printf(\printf(\} }

void main() {

int i=1,a=0,boo=1,number=0; SqList s,*sq; sq=&s;

InitList_Sq(sq);

printf(\初始化空表\\n\printf(\输入数据个数:\\n\scanf(\

printf(\输入%d个数据:\printf(\

for(;i<=number;i++) {

scanf(\

if(boo=ListInsert_Sq(sq,i,a)) {

printf(\插入成功!---\\n\} else {

printf(\插入不成功,重新插入---!\\n\i=i-1; } }

printf(\输出所有元素\\n\visit(sq); printf(\

printf(\输出删除的位置:\scanf(\

if(boo=ListDelete_Sq(sq,a)) {

printf(\数据删除成功!---\\n\}else {

printf(\没有删除成功---\\n\}

printf(\输出所有元素:\\n\visit(sq); printf(\

printf(\输出要显示数据的位置:\scanf(\

printf(\输出%d位置数值\\n\if(a<0||a>sq->length) {

printf(\输出位置的数据不存在---\\n\} else {

GetElem(sq,a); } }

步骤:

1.初始化空表

2.顺序插入数据后输出所有元素

3.选择删除位置,删除数据后输出所有元素 4.选择查看的数据位置,输出选择查看的数据

四:实验结果及分析

分析:

本程序在实现顺序存储插入以及删除i个元素开始的k个元素删除(数据类型为

整型)。之外在删除、查看是实时输出结果,并且可以查看希望显示数据的位置。

…… 此处隐藏:175字,全部文档内容请下载后查看。喜欢就下载吧 ……
数据结构与算法实验报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/592772.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)