当前位置: 首页 > news >正文

数据结构与算法——线性表

🍓个人主页:bit.. 

🍒系列专栏:Linux(Ubuntu)入门必看   C语言刷题

目录

 2.1线性表的定义和特点

2.2 案例引入

2.3 线性表的定义

 2.1线性表的定义和特点

        线性表是具有相同特新的数据元素的一个有限序列。

列如:

同一线性表中的元素必定具有相同特性,数据元素间的关系是线性关系。

 线性表的例子;

        1.分析26个英文字母组成的英文表。

        2.分析学生情况登记表

        3.某单位历年拥有计算机的数量。

线性表是一种典型的线性结构 

2.2 案例引入

1.一元多项式的运算:实现两个多项式加减乘运算。

        p_{n}=p_{0}+p_{1} x+p_{2}x^{2}+......+p_{n}x^{n}

将每一项系数拿出来用线性

线性表 p=(p0,p1,p2,……,pn)

每一项的指数i隐含在其系数pi的序号中。可以用数组来表示。

eg:\bg_white p(x)=10+5x-4x^{2}+3^x{3}+2x^{4} 

2.图书信息管理系统

        需要的功能:查找  插入  删除  修改  排序  计数

 总结:

        1.线性表中数据元素的类型可以为简单类型,也可以为复杂类型

        2.许多实际问题所涉及的基本操作有很大相似性,不应为每个具体应用单独编写一个程序。

        3.从具体应用中抽象出共性的逻辑结构和基本操做(抽象数据类型)然后实现其存储结构和基本操作。

2.3 线性表的定义

抽象数据类型线性表示的定义如下:

ADT List{

        数据对象:D={ai | ai 属于Elemset,(i=1,2,...,n,n>=0)}

        数据关系:R={<ai-1,ai>|ai-1,ai属于D,(i=2,3,...,n)}

        基本操作:

                InitList(&L);         DestoryList(&L);

                ListInsert(&l,i,e);        ListFElet(&L,i,&e);

                .....等等

}ADT List

基本运算:

  1. InitList(&L):初始化线性表,构造一个空的线性表L。
  2. DestroyList(&L):销毁线性表,释放为线性表L分配的内存空间。
  3. ListEmpty(L):判断线性表是否为空表,若L为空表,则返回真,否则返回假。
  4. ListLength(L):求线性表的长度,返回L中元素的个数。
  5. DispList(L):输出线性表,当线性表L不为空时顺序输出L中各元素值。
  6. GetElem(L,i,&。e):按序号求线性表中元素,用e返回L中第i(l≤i≤n)个元素值。
  7. LocateElem(L,e):按元素值查找,返回L中第一个值为e相等的元素序号。
  8. ListInsert(&L,i,e):插人元素,在L的第i(l≤i≤n+l)个位置插入一个新元素e。
  9. ListDelete(&L,i,&e):删除元素,删除L的第i(l≤i≤n)个元素,并用e返回该元素值。

 2.4线性表两种基本存储操作

        1.顺序存储结构(顺序映像)线性表的顺序表示

        2.链式存储结构

顺序存储定义;把逻辑上相邻的数据元素存储在物理上相邻的存储单元中的存储结构。

映射表示:

 线性表的第一个数据元素a1存储位置,乘做线性表的起始位置或者基地址。

线性表的存储必须连续。地址不连续这样是错误的。

线性表顺序存储结构的图示:

顺序表的特点:以物理位置相邻表示逻辑关系,任一元素均可随机存储。

顺序表元素特点:地址连续  依次存放  随机存放  类型相同

线性表达模板:

#define LIST_INIT_SIZE  100  //线性表存储空间初始分配量

typedef struct{

        Elem Type  elem[LIST_INIT_SIZE];

        int length;  //当前长度

}sqlist;

 

例如 图书馆的顺序结构类型定义

#define Maxsize 10000

typedef  struct{         //图书信息定义

        char no[20] ;        //书ISBN

        char name[50];        //书名

        float price;        //价格

}Book;

typedef  struct{

        book  *elem;        //存储空间的基地址

        int  length;        //图书表中当前图书个数

}sqList;                //图书表的顺序存储结构类型为sqList 

相关文章:

  • 北京市工程建设信息网官网/seo优化方向
  • 有创意广告店名字大全/seo网站培训优化怎么做
  • 重庆网站制作开发/怎么建立网站
  • 教育培训网站设计/百度一下官方入口
  • 手机设计免费软件/关键词智能优化排名
  • 安徽做网站找谁/郑州seo阿伟
  • 数据开发的习惯
  • Redis实现消息队列整理笔记
  • Spring的事务控制
  • JavaScript:代码风格
  • JAVA【数据库DB 一】
  • 大数据必学Java基础(七十七):线程的生命周期和常见方法
  • web前端网页设计作业—个人网页(游戏主题)(html+css+js)
  • 2022-2023 ICPC Brazil Subregional Programming Contest VP记录
  • EMC诊断技术及电磁兼容理论设计
  • 升压IC可提升白光LED的电池电压
  • npm install ,npm ERR code 401 Incorrect or missing password 错误原因与.npmrc 配置文件的使用
  • 二十七、Hive分析搜索引擎用户行为数据