数据结构实训

这篇博客是关于2021-2022学年第一学期的数据结构实训报告,涵盖了实训的过程和总结,由学生撰写并由指导教师指导。
摘要由CSDN通过智能技术生成

实 训 报 告 册

                                                课程名称:      数据结构实训     

                                                开课学期: 2021-2022学年第一学期 

                                               院    部:            

                                               专    业:      

                                               班      级:  

                                               学      号:     

                                               姓      名:          

                                               指导教师:            

课程名称

数据结构

实训内容

顺序表的基本操作

实训教室

台号

日期

2021.10.13

学生姓名

学生学号

专业班级

目的

要求

熟悉掌握线性表顺序存储结构,掌握与应用顺序表的查找、插入、删除等基本操作算法,训练和提高结构化程序设计能力及程序调试能力。

工具

设备

计算机一台、Visual C++6.0

内容

过程

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#define MAXSIZE 100

#define ElemType int

#define Status int

//顺序表的数据结构

typedef struct

{

ElemType *data;

int length;

}SqList;

//初始化

int InitList(SqList &L)

{

L.data=new ElemType[MAXSIZE];

L.length = 0;

return 0;

}

//输出

void PrintList(SqList &L)

{

printf("当前顺序表的所有元素:");

for (int i = 0; i < L.length; i++)

{

printf("%d ", L.data[i]);

}

printf("\n");

}

//创建顺序表

void Create(SqList &L)

{

int n;

printf("请输入要输入元素的个数:");

scanf("%d", &n);

if (n<0 || n>MAXSIZE)

{

printf("请输入正确的个数!!!!!!\n");

}

for (int i = 0; i < n; i++)

{

printf("请输入第%d个元素:", (i + 1));

scanf("%d", &(L.data[i]));

L.length++;

}

}

//插入元素

int InsertList(SqList &L, int i, ElemType e)

{

if (i<1 || i>L.length + 1) return 0; //插入的位置非法

if (L.length == MAXSIZE) return 0; //表已经满了

for (int j = L.length; j >= i; j--) //i为要插入的实际位置,从1开始,并非下标

{

L.data[j] = L.data[j - 1]; //从最后一个元素到i 依次向后移

}

L.data[i - 1] = e; //插入

L.length++;

return 1;

}

void Inster(SqList &L)

{

int i, e, flag;

printf("请输入要插入的位置(从1开始)及元素(以,号分隔):");

scanf("%d,%d", &i, &e);

flag = InsertList(L, i, e);

if (flag)

{

printf("插入成功!!\n");

PrintList(L);

}

else

{

printf("插入失败!!\n");

}

}

//删除元素

int DeleteList(SqList &L, int i)

{

if (i<1 || i>L.length) return 0; //位置非法

for (int j = i; j <= L.length - 1; j++)

{

L.data[j - 1] = L.data[j]; //从i开始到最后一个元素依次向前移

}

L.length--;

  • 22
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知识冷不丁进了脑子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值