数据结构实验报告-实验一 顺序表、单链表基本操作的实现

2023-11-10

实验一    顺序表、单链表基本操作的实现

 

实验目的

1、顺序表

(1)掌握线性表的基本运算。

(2)掌握顺序存储的概念,学会对顺序存储数据结构进行操作。

(3)加深对顺序存储数据结构的理解,逐步培养解决实际问题的编程能力。

 

实验内容

1、 顺序表

1、编写线性表基本操作函数:

(1)InitList(LIST *L,int ms)初始化线性表;

(2)InsertList(LIST *L,int item,int rc)向线性表的指定位置插入元素;                         

(3)DeleteList1(LIST *L,int item)删除指定元素值的线性表记录;

(4)DeleteList2(LIST *L,int rc)删除指定位置的线性表记录;

(5)FindList(LIST *L,int item)查找线性表的元素;

(6)OutputList(LIST *L)输出线性表元素;

2、调用上述函数实现下列操作:

(1)初始化线性表;

(2)调用插入函数建立一个线性表;

(3)在线性表中寻找指定的元素;

(4)在线性表中删除指定值的元素;

(5)在线性表中删除指定位置的元素;

(6)遍历并输出线性表;

 

实验结果

1、顺序表

(1)流程图

 
   

 

 

 

 

(2)程序运行主要结果截图

 

 

 

 

 

 

(3)程序源代码

#include<stdio.h>

#include<stdlib.h>

#include<malloc.h>

struct LinearList/*定义线性表结构*/

{

    int *list;       /*存线性表元素*/

    int size;        /*存线性表长度*/

    int Maxsize;     /*存list数组元素的个数*/

};

typedef struct LinearList LIST;

void InitList(LIST *L,int ms)/*初始化线性表*/

{

    if((L->list=(int*)malloc(ms*sizeof(int)))==NULL)

       {

           printf("内存申请错误");

             exit(1);

       }

       L->size=0;

    L->Maxsize=ms;

}

int InsertList(LIST *L,int item,int rc)/*item记录值;rc插入位置*/

{

    int i;

    if(L->size==L->Maxsize)/*线性表已满*/

       return -1;

    if(rc<0)

        rc=0;

    if(rc>L->size)

        rc=L->size;

    for(i=L->size-1;i>=rc;i--)/*将线性表元素后移*/

       L->list[i+=1]=L->list[i];

       L->list[rc]=item;

       L->size++;

       return 0;

}

void OutputList(LIST *L)/*输出线性表元素*/

{

    int i;

    for(i=0;i<L->size;i++)

        printf("%d",L->list[i]);

        printf("\n");

}

int FindList(LIST *L,int item)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据结构实验报告-实验一 顺序表、单链表基本操作的实现 的相关文章

随机推荐

  • 轮播图背景图铺满整个div

    slider width 1224px height 458px background image url image school 1 png background size cover background repeat round p
  • Biogeochemical record of ancient humans (古人类生物地理化学记录)

    一 摘要 该文为一篇综述 全文主要介绍了如何利用生物化学记录 同位素 研究古人类饮食 营养和活动 二 作者简介 Marilyn Fogel born September 19 1952 is an American geo ecologis
  • Java程序中对Service进行Mock

    Java程序中对Service进行Mock 背景 Servie Test Service 背景 在项目中往往需要对service逻辑进行单元测试验证 这里采用mockito对dao数据进行模拟 验证service逻辑 Servie pack
  • 算法训练 大小写转换

    http lx lanqiao org problem page gpid T216 算法训练 大小写转换 时间限制 1 0s 内存限制 512 0MB 问题描述 编写一个程序 输入一个字符串 长度不超过20 然后把这个字符串内的每一个字符
  • 快速获得CNVD证书

    首先要明确什么样的通用漏洞可以发证书 收录标准 这里的收录标准是能获得证书的标准 事件型 事件型漏洞必须是三大运营商 移动 联通 电信 的中高危漏洞 或者党政机关 重要行业单位 科研院所 重要企事业单位 如 中央国有大型企业 部委直属事业单
  • maven子工程application文件失效

    按照如下进行操作
  • ubuntu下载goalng-1.9

    一 安装 这里以安装golang1 9为例 1 首先通过命令行直接安装 sudo apt get install golang 1 9 2 下载好之后 查看go的版本 catik catik Aspire V3 471 go version
  • 2023杭电暑假多校6 题解 1 2 6 10

    文章目录 1 Count 2 Pair Sum and Perfect Square https vjudge csgrandeur cn problem HDU 7337 6 Perfect square number https vju
  • C++中的拷贝构造函数

    1 拷贝构造函数 拷贝构造函数是一种特殊的构造函数 它在创建对象时 是使用同一类中之前创建的对象来初始化新创建的对象 拷贝构造函数通常用于 a 当用类的一个对象去初始化该类的另一个对象 或引用 时系统自动调用拷贝构造函数实现拷贝赋值 b 若
  • 微信小程序开发(二)微信小程序的调试和发布

    调试 编译和预览 预览 点击预览 可以使用微信扫描二维码 在手机上安装测试版小程序 或者点击自动预览 可以连接手机微信或者直接在电脑端打开小程序预览 发布 上传代码 发布项目 工具 上传 确定 编辑版本号和描述 点击上传 上传成功 点击下载
  • mysql错误代码1045的原因及解决方案、Mysql服务没找到?

    mysql错误代码1045的原因及解决方案 Mysql服务没找到 再一次接触数据库时 想要用工具连接数据库的时候 出现了错误 Acess denied for localhost 忘了 应该是服务器的问题 就去重启了一下服务器 net st
  • 【Ant Design of Vue】Tree 树形控件双击树节点禁止取消选中(两种方法)

    一 需求 Ant Design of Vue官网中 第一次点击树节点会选中 再一次点击该树节点会取消选中 如图所示 现有如下需求 根据左侧选中树节点 去请求接口获取右侧表格数据 第一次点击树节点则选中 再一次点击该树节点不会取消选中 不会取
  • 通过js date对象获取各种开始结束日期的示例

    有时候做一些任务计划的功能时候 需要提供一个开始时间或者结束时间 比如本周结束 本月结束 今天结束等等 因此 我参考网上的资料把相关的实现为一个项目 gitee https gitee com dhclly icedog date edge
  • 深度学习------tensorflow卷积神经网络:cifar数据集

    1 cifar10数据集介绍 CIFAR 10数据集由10个类的60000个32x32彩色图像组成 每个类有6000个图像 有50000个训练图像和10000个测试图像 数据集分为五个训练批次和一个测试批次 每个批次有10000个图像 测试
  • Dofbot机械臂从零部署笔记(4)——ROS之Moveit下实现实机逆向运动学规划

    文章目录 编译代码 逆向运动学规划例子 代码和运行效果 关于老是规划失败 逆向运动学Moveit编程步骤 代码修正 本节接上节 实现逆向运动学规划 本节源代码位于 home jetson dofbot ws src dofbot movei
  • linux重置电池阀值,Thinkpad在linux(ubuntu)下修改电池充电阈值,成功解决Thinkpad在Linux下的电池充电问题...

    安装tp smapi aptitude install tp smapi dkms modprobe tp smapi 更改充电阈值 设置开始充电阈值 如从 60 开始充电 echo 60 gt sys devices platform s
  • 手势虚拟键盘

    定义一个HandDetector类 import cv2 import mediapipe as mp import math class HandDetector Finds Hands using the mediapipe libra
  • Docker的学习体验

    由于兴致使然 便想学习一点Docker技术 于是 写了这篇学习Docker的体会 笔拙 见谅 第一件事 把网线插上 相信很多人都被官网的 Sample application 的docker build t getting started
  • Android 抛弃原生WebView,使用腾讯X5内核、并加入广告拦截。

    大家都不知道原生的WebView 存在各种坑 各种适配问题 最近在使用 总会出现DNS被拦截的情况 预览了各个大神的论坛与博客 发现可以更改WebView内核 找到了比较火的两个 分别是 腾讯X5内核 和 crosswalk crosswa
  • 数据结构实验报告-实验一 顺序表、单链表基本操作的实现

    实验一 顺序表 单链表基本操作的实现 l 实验目的 1 顺序表 1 掌握线性表的基本运算 2 掌握顺序存储的概念 学会对顺序存储数据结构进行操作 3 加深对顺序存储数据结构的理解 逐步培养解决实际问题的编程能力 l 实验内容 1 顺序表 1