线性表的学习总结
来源:互联网 发布:阿里星球windows 编辑:程序博客网 时间:2024/04/30 05:29
1.线性表的定义
线性表是具有相同特性的数据元素的一个有限序列。
2.1线性表的顺序存储结构-----------顺序表
线性表的顺序存储结构是,把线性表的所有元素按照其逻辑顺序依次存储到从计算机存储器中指定存储位置开始的一段连续的存储空间中。
在定义一个 在定义一个线性表的顺序存储类型时,除了定义一个数组来存储线性表中的元素外,还需要定义一个整形变量来存储线性表的实际长度。假定数组用data【Maxsize】表示,长度对应的整型变量用Length表示,则采用结构体类型来表示,元素类型为通用类型标识(zhi)符ElemType的线性表的顺序存储类型
可描述如下:
typedef struct { ElemType data[MaxSize]; //存放顺序表中的元素 int length; //存放顺序表的长度 }SqList; //顺序表的类型定义
注意:#define MaxSize 50 是表示估计线性表不会超过50个元素。
2.2线性表基本运算的实现
为了简单,假设ElemType为int类型,使用如下自定义类型语句。
typedef int ElemType;
1. 建立顺序表
顺序表指针和顺序表Q都可以提供一个顺序表,但前者是通过指针L间接地提供顺序表,其定义方式为SqList * L;后者是直接提供顺序表,其定义方式为SqList Q.前者引用length的方式是L->Length,后者引用Length域的方式是Q.length.(采用顺序表指针,主要是为了方便顺序表的释放算法设计)
void CreateList(SqList *&L,ElemType a[],int n) //由a中的n个元素建立顺序表{ int i; L =(SqList *)malloc(sizeof(SqList)); //分配存放线性表的空间 for(i=0;i<n;i++) //放置数据元素 L->data[i] = a[i]; L->length = n; //设置长度}
例题 顺序表中 删除多余重复元素
#include <stdio.h> #include <stdlib.h> #define size 100 typedef struct { int data[size]; int last; }Sequenlist; Sequenlist *SequenlistSet(){ Sequenlist *L; int n; L=(Sequenlist *)malloc(sizeof(Sequenlist)); L->last=-1; printf("请输入表长:\n"); scanf("%d",&n); if(n<0) { printf("错误!\n"); return(0); } printf("请输入元素:\n"); for(L->last=0;L->last<n;L->last++) scanf("%d",&L->data[L->last]); return L; } void SequenlistDelete(Sequenlist *L,int x) { int i=0;int length=L->last;for(i=x;i<length-1;i++) L->data[i]=L->data[i+1]; L->last--;}void search(Sequenlist *L){ int i=0,j=0; int length=L->last;for(i=0;i<length;i++){ for(j=i+1;j<length;j++)if(L->data[i]==L->data[j]){SequenlistDelete(L,j);j--;length--;}}}void print(Sequenlist *L) {int i=0;int length=L->last; for(i=0;i<length;i++)printf("%d ",L->data[i]);printf("\n");}void main(){Sequenlist *L; L=SequenlistSet();search(L);print(L);}
0 0
- 线性表的学习总结
- 线性表学习总结
- 学习 线性表的顺序存储 总结一
- 线性表的链式存储结构学习总结
- 线性表的简单总结
- 线性表知识的总结
- 《数据结构》第二章线性表学习总结
- 数据结构学习总结(二) 线性表
- 线性表学习归纳总结一
- 数据结构之线性表学习总结
- Week1 线性表的学习
- 线性表出、线性相关的定理总结思考
- 线性表学习归纳总结五:不带头结点的循环链表
- 线性表、堆栈、队列的实现总结
- 第二章线性表的总结
- 顺序线性表的基本知识总结
- 线性表的顺序存储总结
- 线性表- 常出的bug总结
- 【Github教程】史上最全github使用方法:github入门到精通之三
- ASP.NET4.6与APS.NET core1.0
- JAVA 关键字和保留字
- xcode的ARC和MRC切换
- android应用程序如何调用支付宝接口
- 线性表的学习总结
- scala方法和函数的区别
- linux命令 tar
- 建议45:为泛型类型参数指定逆变
- win10 配置android adb
- String类的写时拷贝
- 几种TCP连接中出现RST的情况
- 初始篇
- Builder与Factory,殊途同归!