1.线性表的定义
线性表是一种具有线性关系的线性结构。他是一个有限序列。 在这个序列中,除了第一个和最后一个,(我们称为(表头,表尾)),每一个元素都有它的前驱和后继,其中,对ai分析,比i小的都是他的前驱,比i大的都是他的后继,a(i-1)我们把它称之为直接前驱,同理,a(i+1)被称之为直接后继。
2.线性表的基本操作
ADT LinearList(adt是抽象数据类型 a是抽象,d是数据,t是类型。 LinearList是线性表,这里主要是给大家介绍线性表的一些基本操作,)分为:
{
bool isempty() //判断线性表是否为空 若空则返回true
int length()// 返回的是线性表的长度
T get (int i)// 返回第i个元素
bool set(int i,T X)//设置第i个元素为x
void insert(int i,TX) //插入第i个元素
bool remove(int i,T&old)//删除第i个元素,并将原值存放在old变量
void clear() //清空线性表
void print()//输出了所有的线性表的元素
}
我们通常用数组来进行线性表的顺序存储
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef struct{
int *elem;
int length;//表长度
int listsize//表可以存储的最大值
}sqlist;
void InitList_Sq(SqList &L){
L.elem=(int *)malloc(20*sizeof(int));
L.length=0;
L.listsize=10;
}
//初始化这个表。这个malloc 是内存动态分配 void*malloc(size)
void addList(SqList &L){
int i,n;
printf("请输入需要创建的顺序表元素总数:");
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&L.elem[i]);
L.length++;
}
}
然后排序什么的,就把他们按照数组来处理就行了