第一章 绪论
逻辑结构:集合(除了同属一个集合外,没有其他关系)、线性(一对一)、树(一对多)、图(多对多)
物理结构:顺序存储和链式存储
第二章 算法
特点:输入、输出、有穷、确定性、可行性
时间复杂度: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 的值是一个指针。
今天没学什么新东西,明天要看完第四章!