《大话数据结构》阅读笔记。第一天.2018-7-23

第一章 绪论

逻辑结构:集合(除了同属一个集合外,没有其他关系)、线性(一对一)、树(一对多)、图(多对多)

物理结构:顺序存储和链式存储

第二章 算法

特点:输入、输出、有穷、确定性、可行性

时间复杂度:O(1)  < O(lgn)  <  O(n) <  O(nlgn)  < O(n2)< O(n3)<O(2n)  < O(n!) < O(nn)

空间复杂度:S(n)=O(f(n)):n为问题规模,f(n)为语句关于n所占存储空间的函数

第三章 线性表

顺序存储结构

是一个序列、有序的、只有一个前驱和一个后继、都是相同类型的数据

可以用一维数组

数组长度:不变的,初始就固定的。  线性表长度:动态的,等于元素个数。

地址计算:对于第i个   Loc(ai)=Loc(a1) +(i-1)*c   

插入:第i个位置,插入e。 从后往前数到i-1,在都往后移。

删除:先删元素,在往前移,表长减1。 L->data[k-1]=l->data[k]

优缺点:

优点:无须为表中元素之间的逻辑关系而增加额 外的存储空间;可以快速地存取表中任 一位置的元素

缺点:插入和删除操作需要移 动大量元素;当线性表长度变化较大 肘,难以确定存储空间 的容量;造成存储空间的"碎片"

链式结构

无序,不仅要存储元素,还要存储后继元素的地址。

节点包括数据域和指针域。

头指针:必须的,数据域无意义。头结点:非必须的,指针域为头指针。可以往前插入节点。

typedef struct Node

{

   ElemType data;

   struct Node *next;

}Node;

typedef struct Node *LinkList;

p->由恒的值是一个数据元素,结点 aj 的指针域可以用 p->next 来表示, p->next 的值是一个指针。

今天没学什么新东西,明天要看完第四章!

猜你喜欢

转载自blog.csdn.net/weixin_41982696/article/details/81173025