当前位置:   article > 正文

实现一个顺序表的建立、查找、插入和删除操作【数据结构实验报告】_c++顺序表定义创建插入查找实验

c++顺序表定义创建插入查找实验

一、实验目的

1、熟悉将算法转换为程序代码的过程。

2、了解顺序表的逻辑结构特性,熟练掌握顺序表存储结构的c语言描述方法。

3、熟练掌握顺序表的基本运算:查找、插入、删除等,掌握顺序表的随机存取特性。

4、了解线性表的链式存储结构,熟练掌握线性表的链式存储结构的C语言或C++语言的描述方法。

5、熟练掌握线性链表(单链表)的基本运算:查找、插入、删除等,能在实际应用中灵活选择适当的链表结构。

二、算法说明

在本次实验中,首先程序自己建立一个空的头结点,通过菜单的功能选择“添加表的数据”可自由添加链表的节点数及元素值。在菜单选择中,有“添加链数据”,“插入链表数据”,“删除链表数据”,“查找链表数据”和“显示链表数据”功能,选择不能的功能选择就能实现不同的操作。其中“添加链表数据”可反复批量输入链表数据。

三、算法实现

#include <iostream>
using namespace std;
#define MAXSIZE 10 //顺序表的最大长度 

typedef int ElemType;  //别名int类型 
typedef struct list
{
	ElemType elem[MAXSIZE];   //int型数组 
	int length;  //顺序表长度 
}Sqlist;  //顺序表类型 

//创建顺序表, //输入一组整型元素序列,建立一个顺序表,引用类型L,引用已经建立好的顺序表  
void CreateList(Sqlist &L) 
{
	int i;
	cout << "请输入顺序表长度:";
	cin >> L.length; 
	cout << "请输入顺序表元素:";
	for(i=0; i<L.length; i++)
		cin >> L.elem[i];
} 

//输出顺序表 
void PrintList(Sqlist &L)
{
	int i;
	cout << "顺序表所有元素有:"; 
	for(i=0; i<L.length; i++)
		cout << L.elem[i] << "  ";
	cout << endl << "--------------------------------" << endl;
}

//在顺序表的第i个位置插入一个元素x
void InsertList(Sqlist &L, int i, ElemType x)
{
	int j;
	for(j=L.length-1; j>=i-1; j--)  //先移动再插入 
		L.elem[j+1]= L.elem[j];  //从前往后赋值,即插入位置之后的元素后移一个单位
	L.elem[i-1]= x;  //i位置插入元素
	++L.length;  //顺序表长度加1 
} 

//删除顺序表中第i个元素
void DeleteList(Sqlist &L, int i)
{
	int j;
	for(j=i; j<=L.length; j++) 
		L.elem[j-1]= L.elem[j];  //从后往前赋值,被删除之后的元素依次向前移
	--L.length;   //顺序表长度减1 
} 

int main()
{
	Sqlist li;  //空表 
	
	CreateList(li);
	PrintList(li);

	DeleteList(li, 1);  //删除第一个元素 
	PrintList(li);
	
	InsertList(li, 2, 9);  //在第2个位置插入9
	PrintList(li); 
} 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64

四、测试效果

4-1

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/674231
推荐阅读
相关标签
  

闽ICP备14008679号