C++实现顺序表的常用操作(插入删出查找输出)

实现顺序表的插入,删除,查找,输出操作在C语言中经常用到。下面小编给大家整理实现代码,一起看下吧

代码如下所示:

#include<iostream>
using namespace std;
#define MAXSIZE 15
typedef int DataType;
typedef struct
{
DataType data[MAXSIZE]; //通常用一位数组来描述顺序表的数据存储
int SeqLength; /*线性表长度*/
} SeqList;
SeqList *Init_SeqList(); //初始化顺序表
void Define_SeqList(SeqList *L,int n); //填充顺序表的内容
void Display_SeqList(SeqList *L); //提取顺序表中的元素
int Insert_SeqList(SeqList *L,int i,DataType x); //添加元素到指定位置(从开始)
int Delete_SeqList(SeqList *L,int i); //删除指定位置的元素(从开始)
【Sequence.cpp】
#include "Sequence.h"
#include<iostream>
using namespace std;
SeqList *Init_SeqList()//顺序表的初始化算法,将顺序表清空
{
SeqList *L;
L=new SeqList;
L->SeqLength=0; /*长度置为-1*/
return L;
}
void Define_SeqList(SeqList *L,int n)//顺序表的定义算法
{
cout<<"请依次输入顺序表中要储存的元素:"<<endl;
for(int i=0;i<n;i++)
{
cin>>L->data[i]; //输入数组元素
L->SeqLength++;
}
}
void Display_SeqList(SeqList *L)//顺序表的输出算法
{
cout<<"顺序表中储存的元素为"<<endl;
int i;
for(i=0;i<=L->SeqLength-1;i++)
{
cout<<L->data[i]<<" ";
}
cout<<endl;
}
int Insert_SeqList(SeqList *L,int i,DataType x) //顺序表的插入算法
{
cout<<"把元素"<<x<<"插入到位置"<<i<<"上"<<endl;
int j;
if(L->SeqLength==MAXSIZE-1) //数组长度等于设定值-1,则表满
{
cout<<"表满"<<endl;
return -1;
}
if(i<1||i>L->SeqLength+1) //插入位置在第一个之前,或者插入到大于当前数组的长度+1
{
cout<<"位置错"<<endl;
return 0;
}
for(j=L->SeqLength-1;j>=i;j--) //i之后全部后移
{
L->data[j+1]=L->data[j];
}
L->data[i]=x; //将元素填充到空白位置
L->SeqLength++;
cout<<"插入成功"<<endl;
Display_SeqList(L);
return 1;
}
int Delete_SeqList(SeqList *L,int i)//顺序表的删除算法
{
cout<<"将位置为"<<i<<"的元素删除"<<endl;
int j;
if(i<1||i>L->SeqLength)
{
cout<<"不存在第"<<i<<"个元素"<<endl;
return 0;
}
for(j=i;j<=L->SeqLength-1;j++)
{
L->data[j]=L->data[j+1]; //i索引之后全部前移
}
L->SeqLength--;
cout<<"删除成功"<<endl;
Display_SeqList(L);
return 1;
}

【Test_Sequence.cpp】

#include "Sequence.h"
#include<iostream>
using namespace std;
int main()
{
SeqList *L;//顺序表的定义
L=Init_SeqList();//顺序表的初始化
Define_SeqList(L,6);//定义顺序表
Display_SeqList(L);//顺序表的输出
Insert_SeqList(L,4,3);//顺序表的插入
Insert_SeqList(L,6,21);
Insert_SeqList(L,2,15);
Delete_SeqList(L,5);//顺序表的删除
Delete_SeqList(L,3);
Delete_SeqList(L,12);
return 0;
}

效果如下:

以上所述是小编给大家介绍的C++实现顺序表的常用操作(插入删出查找输出),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • C++ 单链表的基本操作(详解)

    链表一直是面试的高频题,今天先总结一下单链表的使用,下节再总结双向链表的.本文主要有单链表的创建.插入.删除节点等. 1.概念 单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素. 链表中的数据是以结点来表示的,每个结点的构成:元素 + 指针,元素就是存储数据的存储单元,指针就是连接每个结点的地址数据.如下图: 2.链表的基本操作 SingleList.cpp: #include "stdafx.h" #include "SingleList.h&

  • C++实现单链表删除倒数第k个节点的方法

    本文实例讲述了C++实现单链表删除倒数第k个节点的方法.分享给大家供大家参考,具体如下: 题目: 删除单链表中倒数第k个节点 解题思路及算法代码: 标尺法,定义两个指针指向链表头结点,先让一个走k步,然后两个指针同时开始走,当先走的指针走到末尾时,后走的指针指向的结点就是需要删除的结点. 单链表结构定义: typedef struct Node { int data; struct Node* next; }node, *pLinkedList; 删除倒数第K结点操作代码: //head表示头结

  • C++ 实现静态单链表的实例

    C++ 实现静态单链表的实例 利用数组实现的静态单链表,与严蔚敏书实现略有不同,不另设回收空间.有任何BUG或错误,希望各位朋友多多反馈~~感激不尽 /* Author : Moyiii * Mail: lc09@vip.qq.com * 静态链表实现,仅作学习之用,当然如果 * 你想拿去用,随你好啦. */ #include <iostream> using namespace std; #define MAX_LIST_SIZE 100 class Node { public: int d

  • 如何在C++中建立一个顺序表

    准备数据 复制代码 代码如下: #define MAXLEN 100 //定义顺序表的最大长度struct DATA{ char key[10]; //结点的关键字  char name[20]; int age;};struct SLType //定义顺序表结构 { DATA ListData[MAXLEN+1];//保存顺序表的结构数组 int ListLen;   //顺序表已存结点的数量 }; 定义了顺序表的最大长度MAXLEN.顺序表数据元素的类型DATA以及顺序表的数据结构SLTyp

  • 利用C++简单实现顺序表和单链表的示例代码

    本文主要给大家介绍了关于C++实现顺序表和单链表的相关内容,分享出来供大家参考学习,话不多说,来一起看看详细的介绍: 一.顺序表示例代码: #include <assert.h> #include <iostream> using namespace std; typedef int Datatype; class SeqList { public: SeqList() :_array(NULL) ,_size(0) ,_capacity(0) { } SeqList(const

  • C++实现顺序表的方法

    废话不多说了,直接给大家上关键代码了. #pragma once #include <assert.h> template<class T> class SeqList { public: SeqList() :_a(NULL) ,_size(1) ,_capacity(1) {} SeqList(T* a, size_t size) :_a(new T[size]) ,_size(size) ,_capacity(size) { for (size_t i = 0; i <

  • C++实现单链表按k值重新排序的方法

    本文实例讲述了C++实现单链表按k值重新排序的方法.分享给大家供大家参考,具体如下: 题目要求: 给定一链表头节点,节点值类型是整型. 现给一整数k,根据k将链表排序为小于k,等于k,大于k的一个链表. 对某部分内的节点顺序不做要求. 算法思路分析及代码(C) 思路:将链表分为小于k.等于k.大于k的三个链表,然后再合并. 链表结点定义: typedef struct Node { int data; struct Node* next; }node, *pNode; 算法代码: pNode s

  • C++中单链表的建立与基本操作

    准备数据 准备在链表操作中需要用到的变量及数据结构 示例代码如下: 复制代码 代码如下: struct Data   //数据结点类型 { string key;  //关键字  string name; int age;};struct CLType  //定义链表结构 { Data nodeData; Data *nextNode;}; 定义了链表数据元素的类型Data以及链表的数据结构CLType.结点的具体数据保存在一个结构Data中,而指针nextNode用来指向下一个结点. 我们可以

  • 浅析C++中单链表的增、删、改、减

    首先是是一个简单的例子,单链表的建立和输出.程序1.1 复制代码 代码如下: #include<iostream>#include<string>using namespace std;struct Student{ string name; string score; Student *next;//定义了指向Candidate类型变量的指针};int main(){ int n;// cout<<"请输入学生的总数:"; cin>>n

  • C++实现顺序表的常用操作(插入删出查找输出)

    实现顺序表的插入,删除,查找,输出操作在C语言中经常用到.下面小编给大家整理实现代码,一起看下吧 代码如下所示: #include<iostream> using namespace std; #define MAXSIZE 15 typedef int DataType; typedef struct { DataType data[MAXSIZE]; //通常用一位数组来描述顺序表的数据存储 int SeqLength; /*线性表长度*/ } SeqList; SeqList *Init

  • C语言实现顺序表的全操作详解

    目录 线性表 顺序表 顺序表接口实现 1.顺序表初始化 2.顺序表空间增容 3.顺序表打印 4.尾插数据 5.尾删数据 6.头插数据 7.头删数据 8.在pos下标处插入数据 9.删除pos下标处数据 10.数据查找 11.顺序表摧毁 线性表 线性表(linear list)是n个具有相同特性的数据元素的有限序列.线性表是一种在实际中广泛使用的数据结构,常见的线性表有:顺序表.链表.栈.队列.字符串等. 线性表在逻辑上是线性结构,也就是连续的一条直线.但在物理结构上并不一定是连续的,线性表在物理

  • C语言超详细讲解顺序表的各种操作

    目录 顺序表是什么 顺序表的结构体 顺序表的接口函数 顺序表相关操作的菜单 顺序表的初始化 添加元素 陈列元素 往最后加元素 往前面加元素 任意位置加元素 删除最后元素 删除前面元素 删除任意元素 整体代码(fun.h部分) 整体代码(fun.cpp部分) 整体代码(主函数部分) 结果展示 顺序表是什么 顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素.使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数

  • 利用C语言实现顺序表的实例操作

    本文实例讲述了C语言实现顺序表(线性表)的方法.分享给大家供大家参考,具体如下: 一:顺序表代码实现 #ifndef _SEQ_LIST_H #define _SEQ_LIST_H #include <stdio.h> #include <stdlib.h> #include <assert.h> #include <string.h> #define ElemType float //以float类型测试算法通用性,而不是以惯用的int #define I

  • linux shell字符串内置的常用操作(获取长度、查找、替换)

    之前我们也发过相关的文章.这里呢,推荐大家使用一些内置的函数. 在编写shell程序时,经常会涉及到字符串相关操作.有许多命令语句,如awk,sed都能够做字符串各种操作. 事实上shell内置一系列操作符号,能够达到相似效果,使用内部操作符会省略启动外部程序等时间,因此速度会很的快.如果内置的操作符能够做到的,优先使用内置的. 1 读取字符串值 表达式 含义 ${var} 变量var本来的值 ${var-default} var没声明返回default,但不改变var的值 ${var:-def

  • C语言全面讲解顺序表使用操作

    目录 一.顺序表的结构定义 二.顺序表的结构操作 1.初始化 2.插入操作 3.删除操作 4.扩容操作 5.释放操作 6.输出 三.示例 编程环境为 ubuntu 18.04. 顺序表需要连续一片存储空间,存储任意类型的元素,这里以存储 int 类型数据为例. 一.顺序表的结构定义 size 为容量,length 为当前已知数据表元素的个数 typedef struct Vector{ int *data; //该顺序表这片连续空间的首地址 int size, length; } Vec; 二.

  • C语言实现顺序表的插入删除

    目录 一.初始化顺序表属性 二.顺序表的插入 三.删除 首先声明一个顺序表的结构 (数组的第一个元素是0,但是顺序表的第一个一般 从1(人为设定)开始) #include <stdio.h> #include <stdlib.h> #define MAXSIZE 10 #define OK 1 #define FALSE 0 typedef int Elemtype; typedef bool Status; typedef struct list { Elemtype *elem

  • C语言 数据结构之数组模拟实现顺序表流程详解

    目录 线性表和顺序表 线性表 顺序表 静态顺序表 动态顺序表 代码已经放在Gitee上,需要可以小伙伴可以去看看 用C语言数组模拟实现顺序表 Gitee 线性表和顺序表 线性表 线性表(linear list)是n个具有相同特性的数据元素的有限序列,这是我们广泛使用的数据结构. 线性表在逻辑上是线性结构,也就说是连续的一条直线.但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储. 常见的线性表:顺序表.链表.栈.队列.字符串- 顺序表 顺序表是用一段物理地址连

  • Java 顺序表专题解读

    目录 一 .前言 二.顺序的定义 三.实现顺序表 3.1顺序表的API设计 3.2 顺序表的代码实现 插入示意图 : 3.3完整的API概览: 四.顺序表的测试: 一 .前言 顺序表常用的一种,学习并了解显得十分重要,顺序表为以后的学习打下了基石. 二.顺序的定义 顺序表示在计算机内存中以数组的形式保存的线性表,在内存中占用一组连续的存储 单元,在此中依次存储各个元素. 三.实现顺序表 3.1顺序表的API设计 3.2 顺序表的代码实现 定义一个泛型类(泛型类的好处就是可以接受任意类型) //定

随机推荐