写在前面:

教材:数据结构(C语言版) 严蔚敏 吴伟民 编著 清华大学出版社

实验跟随教材编写的顺序

实验一 线性表

实验目的

理解线性表的创建、插入和删除操作;掌握顺序表的定义、插入和删除操作时对数据元素的移动。

实验内容

1. 通过结构体声明顺序存储的线性表;

2. 在初始化操作中,对上述线性表分配存储空间,如可容纳100个元素;

3. 编写插入元素的操作;

4. 编写输出元素的操作;

5. 在主函数中声明一个顺序存储的线性表,通过不断插入新元素,构建保存元素的线性表;依次输出各元素,验证线性表结构的正确性。

实验要求

1. 对重要语句进行备注,以表明对程序的正确理解。

源码:

首先将以后所要用到的宏和头文件写在VS的stdafx.h文件中。

// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//#pragma once//#include "targetver.h"#include <stdio.h>
#include <tchar.h>
#include <cstdlib>#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define OVERFLOW -2
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10// TODO: reference additional headers your program requires here

开始编写主体代码。

#include <iostream>
#include "stdafx.h"
using namespace std;typedef int Status;
typedef int ElemType;//定义一个SqList结构体
typedef struct{ElemType *elem;int length;int listsize;}SqList;//初始化函数
Status InitList_Sq(SqList& L){L.elem = (ElemType *)malloc(LIST_INIT_SIZE *sizeof(ElemType));if(!L.elem)exit(OVERFLOW);L.length = 0;L.listsize = LIST_INIT_SIZE;return OK;}//插入函数,添加报错机制
Status ListInert_Sq(SqList& L, int i, ElemType e){if (i < 1 || i > L.length + 1)return ERROR;if (L.length >= L.listsize){ElemType *newbase = (ElemType *)realloc(L.elem, (L.listsize + LISTINCREMENT) * sizeof(ElemType));if (!newbase)exit(OVERFLOW);L.elem = newbase;L.listsize += LISTINCREMENT;}ElemType *p, *q;q = &(L.elem[i-1]);for(ElemType* p = &(L.elem[L.length - 1]); p >= q; --p){*(p + 1) = *(p);}*q = e;++L.length;return OK;}//主函数
int main()
{int i;SqList L1;InitList_Sq(L1);//调用Inert函数顺序插入10个数for(i = 1; i <= 10; i++){ListInert_Sq(L1, i, i * 2);}//显示2到20cout << "The total numbers are:" << endl;for(i = 0; i < 10; i++){cout << L1.elem[i] << " ";//printf("%d ", L1.elem[i]);}cout << endl;InitList_Sq(L1);//调用Inert函数逆序插入10个数for(i = 1; i <= 10; i++){ListInert_Sq(L1, 1, i * 2);}//显示20到2cout << "The total numbers are:" << endl;for(i = 0; i < 10; i++){cout << L1.elem[i] << " ";}cout << endl;return 0;
}

由于是第一个实验,所以代码还是比较少的,具体注释已经写在上面代码中了。


运行结果:

【数据结构实验一】线性表相关推荐

  1. 数据结构实验--基于线性表的图书信息管理系统

    本文是依据数据结构习题解析与实验指导(李冬梅)一书中的第一个实验–基于线性表的图书信息管理系统所写的. 之所以写这个,是因为这个实验不仅涉及到线性表的结构设计,还包括一些线性表的基本操作,个人认为,做 ...

  2. 数据结构实验报告线性表的应用

    线性表的应用 实验要求 创建一个班级学生信息表,包含"学号.姓名.性别.成绩"等信息.具有如下功能:(1) 根据指定学生个数,逐个输入学生信息:(2) 逐个显示学生表中所有学生的相 ...

  3. 实验报告微型计算机拆卸顺序表,实验一线性表的顺序存储结构实验报告页.doc...

    实验一线性表的顺序存储结构实验报告页.doc 1 攀 枝 花 学 院 实 验 报 告 实验课程 数据结构 实验项目线性表的顺序存储 实验日期 系 班级 姓名 学号 同组人 指导老师 成绩 实验目的1. ...

  4. 本科课程【数据结构与算法】实验1——线性表的顺序表示及插入、删除操作(C++实现)

    大家好,我是[1+1=王], 热爱java的计算机(人工智能)渣硕研究生在读. 如果你也对java.人工智能等技术感兴趣,欢迎关注,抱团交流进大厂!!! Good better best, never ...

  5. C语言数据结构线性表上机实验报告,数据结构实验报告实验一线性表_图文

    数据结构实验报告实验一线性表_图文 更新时间:2017/2/11 1:23:00  浏览量:763  手机版 数据结构实验报告 实验名称: 实验一 线性表 学生姓名: 班 级: 班内序号: 学 号: ...

  6. 实验一 线性表、堆栈和队列的操作与实现

    前言 记录实验,同时也是记录常见数据结构算法的实现. 广州大学学生实验报告 开课实验室:计算机科学与工程实验(电子楼418A) 学院 计算机科学与网络工程学院 实验课程 数据结构实验 实验项目 实验一 ...

  7. 实验一线性表的基本操作实现及其应用(JavaScript实现)

    实验一线性表的基本操作实现及其应用(JavaScript实现) 实验目的 熟练掌握线性表的结构特点, 掌握顺序表的基本操作. 巩固 C++相关的程序设计方法与技术. 学会使用顺序表解决实际问题. 实验 ...

  8. 【数据结构】除去线性表中的重复数字

    题目:写一个算法将单链表中值重复的结点删除,使所得的结果表中各结点值均不相同. 刚看到这个题目给我第一个思路是冒泡排序,可以利用冒泡排序的两层循环找出相同的结点,然后free掉.第一层循环是控制循环的 ...

  9. Algorithms_基础数据结构(04)_线性表之链表_单向循环链表约瑟夫环问题

    文章目录 大纲图 链表的经典面试题目 如何设计一个LRU缓存淘汰算法 约瑟夫问题 结构 分析 大纲图 链表的经典面试题目 如何设计一个LRU缓存淘汰算法 tip:单向链表 约瑟夫问题 N个人围成一圈, ...

  10. Java版数据结构与算法——线性表

    *************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如 ...

最新文章

  1. avplayer VS2008编译
  2. 【iOS】Socket/TCP 通信 发送 NSString 字符串格式数据
  3. c语言的一些易错知识积累
  4. utf8 txt文本转ansi vbs_数据分析之路-文本分析
  5. Django安装使用基础
  6. uniaccess进程无法结束 拒绝访问_嵌入式Linux编程——程序员小白不懂的进程、信号量、并发、互斥...
  7. jquery实现增删改(伪)-老男孩作业day13
  8. pip指定源安装_几种python安装简单方法
  9. centos7防火墙--firewall
  10. 想让照片里的美女“回头”?清华MIT谷歌用AI帮你实现了
  11. Ubuntu 10.04 is coming
  12. c#利用泛型集合,为自己偷偷懒。
  13. PCI设备扫描和资源分配
  14. 蓝海灵豚医疗器械管理软件医用耗材专版
  15. Spring中使用aop操作需要用到的aspectjweaver-1.8.7.jar包
  16. cad文件格式(dwg、dxf、dwf、dws等)转其他格式(svg、,tiff、jpej、png、xml、pdf等)的四种方式(java)
  17. 《c语言 从入门到放弃》,从入门到放弃的?单片机这样做很容易!
  18. Excel绘制统计图
  19. Java多线程并发笔记01 对象锁 类锁 对象锁的同步和异步 脏读
  20. poco库开发mysql_Poco数据库操作

热门文章

  1. Xshell使用方法
  2. 实验报告4:用户和用户组的管理
  3. Eclipse SVN 创建分支
  4. java实现excel转图片功能
  5. 3dmax:3dmax三维VR渲染设置(【DMC采样器】、【Vray默认置换】、【Vray系统】、【Vray日志】、杂项选项、灯光属性)之详细攻略
  6. select下拉框option默认选中(php模板渲染)
  7. SD卡无法格式化怎么办的解决方法
  8. [4G5G专题-45]:物理层-基带子载波数字调制解调(星座图, 相位调制PSK, 正交幅度相位调制QAM)
  9. 阮一峰ES6入门读书笔记(九):Set 和 Map
  10. ​24小时企业级微信小程序全套开发视频教程