数据结构-线性表

(1).线性表的体系结构:

(2).线性表的逻辑特征:只有一个没有前驱的表头元素,只有一个没有后继的表尾元素,除了表头和表尾元素之外,其他元素已有一个直接前驱,也只有一个直接后继。

(3).线性表的分类:

 

顺序表和链表的区别:顺序表存储位置是连续的、支持随机访问,链表可以是不连续的、不能随机访问,只能从头到尾逐个搜索.顺序表的存储密度是1,链表的存储密度小于1.

补充说明

(4).顺序表进行插入和删除算法的时间复杂度的分析:移动元素个数的期望值E=(n-1)/2.即要移动近一半的元素,时间复杂度为0(n)。

(5).线性表各种结构体的定义:

(6).顺序表的算法操作:

(7).单链表的算法操作:

3.头插入法的核心:

head->next = NULL;   

...............................................

p = ( struct Data *)malloc(sizeof(struct Data));
p->num = data;
p->next = head->next;
head->next = p;

 

4.尾插入的核心:

head->next = NULL;   
 r=head;

...............................................

 s = ( struct Data *)malloc(sizeof (struct Data));
 s->num = data;
 s->next = r->next;
 r->next = s;
 r=s;

5.删除

 (8).双链表的算法操作:

5.插入的示意图

 

6.删除的示意图

(9).循环链表的算法操作:

 (10).一元多项式表示和相加(不是重点)

 

posted @ 2017-03-20 12:50  freeflying  阅读(144)  评论(0)    收藏  举报