线性表Linearlist
顺序存储,链式存储,索引存储,散列存储
基本运算
SLIST
| 1.置空表 | void SetNull(&L) | ||
| 2.求长度 | int Length(L) | ||
| 3.取元素 | ElemType Get(L,i) | 取第i个位置的元素 | |
| 4.取前驱 | ElemType Prior(L,x) | 取元素值x的直接前驱 | |
| 5.取后继 | ElemType Next(L,x) | 取元素值x的直接后继 | |
| 6.定位函数 | int Locate(L,x) | 查找值为x的位置 | |
| 7.插入 | void Insert(&L,x,i) | 在第i个位置插入值为x的元素 | |
| 8.删除 | void Dele(&L,i) | 删除第i个位置上的元素 |
顺序存储:
const int M=Maxlen;//线性表的最大长度
class Sequenlist
{
public :
elemtype a[M];
int len; int length(sequenlist L); void Insert(sequenlist &L,elemtype x,int i);
void Dele(sequenlist &L,int i);
void SetNull(sequenlist &L); int Locate(sequenlist L,elemtype x);
elemtype Get(sequenlist L,int i);
elemtype Prior(sequenlist L,elemtype x);
elemtype Next(sequenlist L,elemtype x);
} //求长度
int sequenlist::length(sequenlist L)
return L.len;
//置空
void sequenlist ::SetNull(sequenlist &L)
L.len=0; //取元素
elemtype sequenlist::Get(sequenlist L,int i)
{
if((i<0)||(i>L.len))
return NULL:
else
return L.a[i];
}
//定位
int sequenlist::Locate(sequenlist L,elemtype x)
{
int i=0;
while((i<L.len)&&(L.a[i]!=x))
i++;
if(i<L.len) return i;
else return -1;
} //插入
//1、超过表长,溢出,不能插入
//2、i值非法,不能插入 void sequenlsit::Inset(sequenlist &L,elemtype x,int i)
{
int j;
if(L.len>=M-1)
cout<<"overflow"<endl;
else if((i<1)||(i>L.len+1))
cout<<"position is not correct"<<endl;
else{
for(j=L.len;i>=i;j—)
L.a[j+1]=L.a[j]; //元素后移
L.a[i]=x;//插入元素
L.len++;//表长加1
}
} //删除
void sequenlist ::Dele(sequenlist &L,int i)
{
int j;
if((i<1)||(i>L.len+1))
cout<<"position is not correct"<<endl;
else{
for(j=i+1;j<=L.len:j++)
L.a[j-1]=L.a[j];//元素前移覆盖
L.len--;
}
}
//动态分配,指针
class sequenlist
{
public:
elemtype *a;
int len;
...
}
//置空需要修改
void sequenlist::SetNull(sequenlist &L)
{ L.a=new elemtype[M];//动态申请存储单元
if(L.a==NULL) exit(1);//申请失败
L.len=0;
}
线性表Linearlist的更多相关文章
- 线性表的顺序存储结构之顺序表类的实现_Java
在上一篇博文——线性表接口的实现_Java中,我们实现了线性表的接口,今天让我们来实现线性表的顺序存储结构——顺序表类. 首先让我们来看下顺序表的定义: 线性表的顺序存储是用一组连续的内存单元依次存放 ...
- 线性表接口的实现_Java
线性表是其组成元素间具有线性关系的一种线性结构,对线性表的基本操作主要有插入.删除.查找.替换等,这些操作可以在线性表的任何位置进行.线性表可以采用顺序存储结构和链式存储结构表示. 本接口的类属于da ...
- 线性表(List)
1.什么是线性表(List)? 零个或多个数据元素的有限序列. (1)元素之间是有序的. (2)线性表强调是有限的. 2.线性表有哪些操作? (1)线性表的创建和初始化,InitList (2)判空, ...
- 数据结构C线性表现实
linearList.h #ifndef _INC_STDIO_8787 #define _INC_STDIO_8787 #include <stdio.h> #include <m ...
- c++ 用模板类实现顺序储存的线性表
首先要注意的一点是模板类在VS中编译时如果将定义和声明分开会出现无法解析的问题,所以一般比较常见的解决的办法是将声明和定义放在同一个头文件中然后统一的调用,下面就是用模板类实现线性表的编写 #prag ...
- 线性表源码分享(c++),包含顺序表、单链表、循环链表、双向链表
---恢复内容开始--- 我是一个c++和数据结构的初学者,本文主要是把清华大学出版社的数据结构(用面向对象方法与c++语言描述)(第2版)这本书中第二章线性表的源码抄下来,在学习的过程中有助于加深印 ...
- [C++]使用vector描述线性表定义及基本操作
#ifndef VECTORLIST_H #define VECTORLIST_H #include<iostream> #include"linearlist.h" ...
- 数据结构(Java描述)之线性表
基础概念 数据结构:是相互之间存在一种或多种关系的数据元素的集合. 逻辑结构和物理结构 关于数据结构,我们可以从逻辑结构和物理结构这两个维度去描述 逻辑结构是数据对象中数据元素之间的关系,是从逻辑意义 ...
- JAVASE02-Unit04: 集合框架 、 集合操作 —— 线性表
Unit04: 集合框架 . 集合操作 -- 线性表 操作集合元素相关方法 package day04; import java.util.ArrayList; import java.util.Co ...
随机推荐
- echarts-在现实标题中显示百分比
如图:需要在标题显示所占百分比 使用方式:途中标记部分 series : [{ name: '类型', type: 'pie', radius : '55%', center: ['50%', '60 ...
- jquery-读取form表单中的所有数据列表
代码: <script> $(function() { $('#submit').click(function() { var d = {}; var t = $('form').seri ...
- form表单提交时,action怎么带参数
<html> <title>form</title> <script type="text/javascript"> functio ...
- Java之类的构造器(反射)
反射: Java反射机制:指的是在Java程序运行状态中,对于任何一个类,都可以获得这个类的所有属性和方法;对于给定的一个对象,都能够调用它的任意一个属性和方法.这种动态获取类的内容以及动态调用对象的 ...
- HTML隐藏的方法
display:none; 表单 type="hidden" 宽高设为0 height:0;width:0; 祖先元素隐藏或在页面外 margin Visibility:hidde ...
- 响应式布局-Rem的用法
前言: 文章较为系统地介绍了rem这个新的文字大小单位,绝对干货,绝对好文.转载时略有改动. 先来看看一些基本理念,比如: 响应式网页不仅仅是响应不同类型的设备,而且需要响应不同的用户需求.响应式 ...
- 19个必须知道的Visual Studio快捷键
项目相关的快捷键 Ctrl + Shift + B = 生成项目 Ctrl + Alt + L = 显示Solution Explorer(解决方案资源管理器) Shift + Alt+ C = 添加 ...
- SQL拼接自己需要的字符串
SQL行转列有多种写法,如果想把多行数据拼接成为新的一行,比如: 首先,将查询转为XML 替换XML的标签 将第一个字符,去掉试用 STUFF函数 sql STUFF用法 1.作用 删除指定长度的字符 ...
- 每天写点shell——read的用法
1.read基本读取 #!/bin/bash #testing the read command echo -n "Enter you name:" #echo -n 让用户直接在 ...
- 前端构建工具之gulp(一)「图片压缩」
前端构建工具之gulp(一)「图片压缩」 已经很久没有写过博客了,现下终于事情少了,开始写博吧 今天网站要做一些优化:图片压缩,资源合并等 以前一直使用百度的FIS工具,但是FIS还没有提供图片压缩的 ...