将线性表的抽象数据类型定义在顺序表存储结构下用C++的类实现,由于线性表的数据元素类型不确定,所以采用模板机制。

 头文件seqlist.h
#pragma once
#include <iostream>
const int MaxSize = ;
template<class T>// 定义模板类
class SeqList
{
public: SeqList() { Length = ; }; // 无参构造函数,建立一个空的顺序表
SeqList(T a[], int n); // 有参构造函数,建立一个长度为n的顺序表
~SeqList() {}; // 空的析构函数
int leng() { return Length; } // 求线性表的长度
T get(int i); // 按位查找第i个元素
int locate(T x); // 按值查找值为x的元素序号
void insert(int i, T x); // 在第i个位置插入值为x的元素
T Delete(int i); // 删除第i个元素
void printlist(); // 打印线性表 private:
T data[MaxSize];
int Length; }; #pragma region 成员函数定义 template<class T>
inline SeqList<T>::SeqList(T a[], int n)
{
if (n > MaxSize)throw"参数非法";
for (int i = ; i < n; i++)
data[i] = a[i];
Length = n;
} template<class T>
T SeqList<T>::get(int i)
{
if (i< || i>Length)throw"查找位置非法";
else return data[i - ];
} template<class T>
int SeqList<T>::locate(T x)
{
for (int i = ; i < Length; i++)
{
if (data[i] == x)
return i + ;
}
return ;
} template<class T>
void SeqList<T>::insert(int i, T x)
{
if (Length >= MaxSize)throw "上溢";
if (i< || i>Length + )throw "插入位置非法"; for (int j = Length; j >= i; j--)
data[j] = data[j - ];
data[i-] = x;
Length++;
} template<class T>
T SeqList<T>::Delete(int i)
{
if (Length == )throw"下溢";
if (i< || i>Length)throw"位置非法";
T x = data[i - ];
for (int j = i; j < Length; j++)
data[j - ] = data[j];
Length--;
return x;
} template<class T>
void SeqList<T>::printlist()
{
for (int i = ; i < Length; i++)
cout << data[i] << endl; }
主函数
#include "seqlist.h"
using namespace std;
int main()
{
int arry[] = { , , , , , , , , , };
// 三种创建类对象的方法
SeqList<int> seqlist;
SeqList<int> seqlist1(arry,);
SeqList<int>* seqlist2 = new SeqList<int>(arry, );
cout << seqlist1.get() << endl;
cout << seqlist2->get() << endl;
cout << seqlist1.locate() <<endl;
cout << seqlist2->locate() << endl;
seqlist1.insert(, );
seqlist2->insert(, );
seqlist1.Delete();
seqlist2->Delete();
seqlist1.printlist();
seqlist2->printlist(); system("pause");
return ;
}

C++实现线性表的顺序存储结构的更多相关文章

  1. 2.2_线性表的顺序存储结构_参考集合ArrayList

    [线性表的顺序存储从结构] 指的是用一段连续的存储单元一次储存线性表的数据元素. [线性表的顺序存储的结构代码 C语言版] #define MAXSIZE 20 /*存储空间初始分配量*/ typed ...

  2. 线性表的顺序存储结构——java

    线性表的顺序存储结构:是指用一组地址连续的存储单元一次存放线性表的元素.为了使用顺序结构实现线性表,程序通常会采用数组来保存线性中的元素,是一种随机存储的数据结构,适合随机访问.java中ArrayL ...

  3. C++编程练习(1)----“实现简单的线性表的顺序存储结构“

    线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素. 故可以用数组来实现顺序存储结构. 用C++编写的利用数组实现简单的读取.插入和删除功能的线性表. #include< ...

  4. 线性表的顺序存储结构之顺序表类的实现_Java

    在上一篇博文——线性表接口的实现_Java中,我们实现了线性表的接口,今天让我们来实现线性表的顺序存储结构——顺序表类. 首先让我们来看下顺序表的定义: 线性表的顺序存储是用一组连续的内存单元依次存放 ...

  5. 数据结构4:顺序表(线性表的顺序存储结构)及C语言实现

    逻辑结构上呈线性分布的数据元素在实际的物理存储结构中也同样相互之间紧挨着,这种存储结构称为线性表的顺序存储结构. 也就是说,逻辑上具有线性关系的数据按照前后的次序全部存储在一整块连续的内存空间中,之间 ...

  6. c数据结构 -- 线性表之 顺序存储结构 于 链式存储结构 (单链表)

    线性表 定义:线性表是具有相同特性的数据元素的一个有限序列 类型: 1:顺序存储结构 定义:把逻辑上相邻的数据元素存储在物理上相邻的存储单元中的存储结构 算法: #include <stdio. ...

  7. 线性表之顺序存储结构(C语言动态数组实现)

    线性表的定义:N个数据元素的有限序列 线性表从存储结构上分为:顺序存储结构(数组)和 链式存储结构(链表) 顺序存储结构:是用一段连续的内存空间存储表中的数据 L=(a1,a2,a3....an) 链 ...

  8. c语言数据结构之线性表的顺序存储结构

    线性表,即线性存储结构,将具有“一对一”关系的数据“线性”地存储到物理空间中,这种存储结构就称为线性存储结构,简称线性表. 注意:使用线性表存储的数据,要求数据类型必须一致,线性表存储的数据,要么全不 ...

  9. 【Java】 大话数据结构(1) 线性表之顺序存储结构

     本文根据<大话数据结构>一书,实现了Java版的顺序存储结构. 顺序存储结构指的是用一段地址连续的存储单元一次存储线性表的数据元素,一般用一维数组来实现. 书中的线性表抽象数据类型定义如 ...

  10. 线性表 linear_list 顺序存储结构

    可以把线性表看作一串珠子 序列:指其中的元素是有序的 注意last和length变量的内在关系 注意:将元素所占的空间和表长合并为C语言的一个结构类型 静态分配的方式,分配给一个固定大小的存储空间之后 ...

随机推荐

  1. 构建私有Docker Registry

    1.设置insecure-registry: 可能会出现无法push镜像到私有仓库的问题. 这是因为我们启动的registry服务不是安全可信赖的. 1) sudo vim /etc/default/ ...

  2. 关于80286——《x86汇编语言:从实模式到保护模式》读书笔记15

    一.80286的工作模式 80286首次提出了实模式和保护模式的概念. 实模式:和8086的工作方式相同: 保护模式:提供了存储器管理机制和保护机制,支持多任务. 二.80286的寄存器 (一)通用寄 ...

  3. poj 2954 Triangle

    pick公式+gcd公式 #include<iostream> #include<map> #include<string> #include<cstring ...

  4. 【转】WEB安全之渗透测试流程

    熟悉渗透流程,攻击会像摆积木一样简单! 0x 01:信息收集 收集网站信息对渗透测试非常重要,收集到的信息往往会让你在渗透中获得意外惊喜. 1. 网站结构 可以使用扫描工具扫描目录,主要扫出网站管理员 ...

  5. [转]ECMAScript 6 入门 -编程风格

    本文转自:http://es6.ruanyifeng.com/#docs/style 编程风格 块级作用域 字符串 解构赋值 对象 数组 函数 Map结构 Class 模块 ESLint的使用 本章探 ...

  6. Spring事务不起作用原因

    首先声明: Checked异常继承java.lang.Exception类.Unchecked异常继承自java.lang.RuntimeException类. 而,Spring的事务实现采用基于AO ...

  7. 《深入理解Java内存模型》读书总结(转-总结很好)

    概要 文章是<深入理解Java内容模型>读书笔记,该书总共包括了3部分的知识. 第1部分,基本概念 包括“并发.同步.主内存.本地内存.重排序.内存屏障.happens before规则. ...

  8. thinkphp引入头文件

    <include File="Public:regheader" />

  9. cssText用法和使用说明

    cssText 本质是什么? cssText 的本质就是设置 HTML 元素的 style 属性值. cssText 怎么用? document.getElementById("d1&quo ...

  10. mockito測試框架

    1. code package com.springinaction.knights; import static org.mockito.Mockito.*; import org.junit.Te ...