数据结构与算法第一章绪论1数据结构的分类:⑴线性结构
其中每个结点最多只有一个前驱和后继的结构
线性表(单链表、循环链表、双向链表)、栈、队列等都是线性表的结构
“一对一”⑵树形结构
其中每个结点最多只有一个前驱,但可以有多个后继的结构
二叉树、树、森林都是树形结构
“一对多”⑶复杂结构
其中结点的前驱和后继点个数都不做限制的结构
有向图、无向图都是复杂结构
“多对多”2存储的各种表示:顺序表示、连接表示、散列旗袍、索引表示3文件的处理,在文件上的操作的种类:⑴检索⑵插入⑶删除⑷修改⑸排序4算法的性质:有穷性、确定性、可行性练习题:1计算下列程序片段的时间代价inti=1;while(ielement[q]⑵删除for(q=p;qn-1;n-1;q++)Palist->element[q]=palist->element[q+1];2单链表:⑴插入intinsertPost_link(LinkListllist,PNodep,DataTypex)⑵删除intdeleteV_link(LinkListllist,DataTypex)3循环双链表⑴插入p->llink->rlimk=p->rlink;p->rlink->->llink=p->llink;⑵删除q=(PDoubleNode)malloc(sizeof(structDoubleNode));4采用顺序存储方式表示矩阵一般有行优先顺序和列优先顺序
按行优先顺序存储,其地址计算公式为:loc(aij)=loc(a00)+i×n+j按列优先顺序存储,其地址计算公式为:loc(aij)=loc(a00)+i×m+j5深度:一个广义表的深度,就是指广义表中所含括号的层数
练习题:1某线性表采用顺序存储结构,每个元素占据4个存储单元,首地址为100,则下标为11的(第12个)元素的存储地址为100+4×11=1442线性表的链