数据结构中线性表和链表的小结

来源:互联网 发布:java分布式视频教程 编辑:程序博客网 时间:2024/05/01 19:51
线性表的顺序表示:顺序表
初始化的时候需要确定线性表的数组长度和线性表的长度
线性表的顺序表示:
# define LIST_INIT_SIZE 100
#define LIST_INC_SIZE 20
typedef struct{
ElemType * elem;
int Listsize;
int length;
}SqList;

顺序表的基本操作:
1、顺序表的初始化操作:InitList(SqList &L, int msize=LIST_INIT_SIZE):分配空间。容量、元素数=0
2、顺序表的销毁操作:DestroyList(SqList &L)删除元素、数组长度为0,表长度为0
3、检查空、满、和获取长度:bool ListEmpty(SqList L) 获取数组、列表长度
4、查找和获取元素LocateItem_sq(SqList L,Elemtype e)依次查找元素
5、在位置i处插入元素:void ListInsert_sq(SqList &L,int i,Elemtype e)判断位置是否已满,再逐个后移元素
6、删除元素:void ListDelete_sq(SqList &L, int i,Elemtye &e)
当顺序表的长度无限长时,时间消耗是不容忽视的,因此顺序表常常用于那些无需频繁插入和删除元素的应用

线性表的链式表示:单链表和循环列表
链表需要存储数据本身外,还需要存储一个指示直接后继元素的信息——指针
节点中表示数据元素的域为数据域p->data,指向后继元素的域为指针域p->next。
单链表:
typedef struct LNode{
ElemType data;
struct LNode * next;
}LNode,
单链表的操作:
1、初始化InitList(LinkList &L)只需要定义一个空指针
2、求链表的长度 ListLength_L(linkList L)
3、链表查找元素 LNode * LocateItem_L(LinkList L, ElemType e)
4、链表插入和删除元素
除了单链表外,还有循环链表和双向链表,双向链表是在单向链表的基础上加上一个反向链表
0 0
原创粉丝点击