线性表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 ...
随机推荐
- HDF5基本使用方法
HDF5, 大量(海量?)数据存储的一种解决方案. HDF的全称是Hiearchical Data Format, 5是版本号(未考证过TODO). 一个HDF5文件操作起来就像一个独立的文件系统. ...
- 【bzoj1941】 Sdoi2010—Hide and Seek
http://www.lydsy.com/JudgeOnline/problem.php?id=1941 (题目链接) 题意 给出n个二维平面上的点,求一点使到最远点的距离-最近点的距离最小. Sol ...
- 用Python实现多核心并行计算
平常写的程序,无论是单线程还是多线程,大多只有一个进程,而且只能在一个核心里工作.所以很多应用程序即使正在满载运行,在任务管理器中CPU使用量还是只有50%(双核CPU)或25%(四核CPU) 如果能 ...
- winform开发 总结1>winform程序使用线程的必要性,以及正确的使用方式
winform程序中使用线程的必要性: 单线程操作在执行耗时任务时会造成界面假死,带来非常差劲的用户体验,有时候甚至会影响到正常的业务执行,使用多线程做相关操作实属不得已之举. 那么在编写程序之前必须 ...
- 深入浅出 Redis client/server交互流程
综述 最近笔者阅读并研究redis源码,在redis客户端与服务器端交互这个内容点上,需要参考网上一些文章,但是遗憾的是发现大部分文章都断断续续的非系统性的,不能给读者此交互流程的整体把握.所以这里我 ...
- HibernateSessionFactory建立-使用ThreadLocal
立即加载还是延迟加载必须要连接数据库的,而在Java中连接数据库是依赖java.sql.Connection,在hibernate中session就是Connection的一层高级封装,一个sessi ...
- 在webapi2中使用OWIN 自寄宿模式
OWIN 自寄宿模式说的直白一点就是不需要IIS了,直接通过路由访问cs模式的服务 敲了一遍官方的例子,首先安装Microsoft.AspNet.WebApi.OwinSelfHost,注意不要安装 ...
- python api
import requests #查询手机好归属地API def phone(tel): url = 'http://op.juhe.cn/onebox/phone/query' appkey = ' ...
- 第一章 Shiro简介——《跟我学Shiro》(转)
目录贴:跟我学Shiro目录贴 1.1 简介 Apache Shiro是Java的一个安全框架.目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可 ...
- AJAX请求时status返回状态明细表 readyState的五种状态
在<Pragmatic Ajax A Web 2.0 Primer >中偶然看到对readyStae状态的介绍,感觉这个介绍很实在,摘译如下: 0: (Uninitialized) the ...