没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
《数 据 结 构》实 验 报 告
专 业 计算机科学与技术
班 级 121
班
姓 名 张航
学 号 1208010117
学 期 2013-2014
第
1
学期
指导老师 刘勇
成绩:
实验
1 2 3 4
总分
成绩
教师评语:
数据结构 上机实验报告
学号:1208010117 姓名: 张航 所在系:计算机科学与技术 班级:121
班
实验名称: 线性 结构 基本算法的实现 实验日期 2013/11/ 6
实验指导教师 刘勇 实验机房 4
号机房
------------------------------------------------------------------------------------------------------
1. 实验目的:
(1) 掌握线性表顺序存储结构的基本操作:插入、删除、查找;
(2) 掌握线性表链式结构的基本操作:插入、删除、合并等运算;
(3)掌握栈和队列基本运算的算法;
(4)掌握稀疏矩阵的压缩存储的算法。
2. 实验内容:
(1)实现顺序表的创建、插入、删除和查找的操作;
(2)实现单链表 插入、删除、合并的操作;
(3)实现 2 个有序线性表的合并;
(4)利用顺序栈实现括号匹配的算法;
(5)实现顺序队列各种基本运算的算法;
(6)实现链栈各种基本运算的算法;(选做)
(7)实现链队列各种基本运算的算法;(选做)
(8)实现稀疏矩阵压缩存储的算法。
3.算法设计(编程思路或流程图或源代码)
内容:
1、 顺序表的插入和删除
//SqList.h
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#define ElemType int
#define OK 1
#define ERROR 0
#define OVERFLOW 0
typedef struct
{
ElemType *elem;
int length;
int listsize;
}SqList;
int InitList (SqList *L)
{
L->elem = (ElemType *)malloc(100 * sizeof(ElemType));
if (!L->elem)
return OVERFLOW;
L->listsize = 100;
L->length =0;
return OK;
}
int CreateList (SqList *L,int n)
{
int i;
L->length = n;
printf ("请输入%d 个整数:\n",L->length);
for (i=0;i<L->length;i++)
scanf ("%d",&L->elem[i]);
return OK;
}
void TravelList (SqList *L)
{
int i;
for (i=0;i<L->length;i++)
printf ("当前顺序表第%d 个元素为:%d\n",i+1,L->elem[i]);
}
int InsertList (SqList *L,int i,ElemType e)
{
ElemType *newbase,*p,*q;
if (i<0 || i>(L->length+1))
return ERROR;
if (L->length >= L->listsize)
{
newbase = (ElemType *)realloc(L->elem,(100+50) * sizeof(ElemType));
if (!newbase)
return ERROR;
L->elem = newbase;
L->listsize = 100+50;
}
p=&L->elem[i-1];
for (q=&L->elem[L->length-1];q>=p;q--)
*(q+1) = *q;
*p = e;
L->length++;
return OK;
}
int DelList (SqList *L,int i,ElemType &x)
{
ElemType *p,*q;
if (i<1 || i>L->length || L->length == 0)
return ERROR;
p=&L->elem[i-1];
x=*p;
for (q=&L->elem[L->length-1];q>p;p++)
*p = *(p+1);
L->length--;
return OK;
}
//.cpp
#include<stdio.h>
#include<stdlib.h>
#include "SqList.h"
void main ()
{
int n,i;
ElemType e,x;
SqList sq;
SqList *l = &sq;
printf ("* * * 顺 序 表 的 基 本 操 作 * * *\n");
printf (" 计算机 12117 张航\n\n\n");
printf ("* * * 初始化顺序表 * * *\n");
InitList (l);
printf ("成功初始化顺序表!\n\n");
printf ("* * * 建立顺序表 * * *\n");
printf ("输入要建立顺序表的长度:\n");
scanf ("%d",&n);
CreateList (l,n);
printf ("成功建立顺序表!\n");
TravelList (l);
printf ("\n\n");
printf ("* * * 顺序表的插入 * * * \n");
printf ("输入插入位置及插入元素:\n");
scanf ("%d%d",&i,&e);
InsertList (l,i,e);
printf ("成功插入顺序表!\n");
TravelList (l);
printf ("\n\n");
printf ("* * * 顺序表的删除 * * * \n");
printf ("输入删除位置:\n");
scanf ("%d",&i);
DelList (l,i,x);
剩余33页未读,继续阅读
资源评论
老帽爬新坡
- 粉丝: 79
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 20240420-扬州高中小学部风雨操场转换层条件图r.dwg
- 小猫咪邮件在线发送系统源码v1.1,支持添加附件
- 永磁电机铜耗估算表-Excel-v1.0
- 参考资料-人工智能对劳动力市场的影响机制研究.pdf
- 协同供应链集成产品介绍V71sp1.rar
- 上市公司-人工智能的采纳程度面板数据(2003-2021年).xlsx
- 参考资料-人工智能技术应用对就业的影响及作用机制研究-来自制造业企业的微观证据.pdf
- 第5章spring-mvc请求映射处理
- 2023-04-06-项目笔记 - 第一百十六阶段 - 4.4.2.114全局变量的作用域-114 -2024.04.27
- 协同供应链集成产品介绍V70.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功