数据结构

1.评价一个算法性能好坏的重要标准是(算法的时间复杂度算法的时间复杂度与问题规模 有关。算法分析的目的是分析算法的效率以求改进某算法的时间复杂度是O(n2),表明该算法的执行时间与n2成正比若需要利用形式参数直接访问修改实参值,则应将形参说明为 指针参数一种抽象类型包括数据对象、结构关系和基本操作。数据结构的逻辑结构分为集合结构  线性结构  树形结构 和图结构 或 网状结构四种。数据结构的存储结构分为顺序存储结构和 链式存储结构两种。算法是规则的有限集合,是为解决特定问题而规定的操作序列

2.在长度为n的顺序表中的第i个位置上插入一个元素,其算法时间复杂度为(O(n))。

在长度为n的顺序表中的第i个位置上插入一个元素,需要移动的元素个数为(n-i+1)。

链表具有的特点是(所需存储空间与线性表程度成正比不必事先估计存储空间插入、删除不需要移动元素)。

长度为n的非空线性表采用顺序存储结构,在表的第i个位置插入一个数据元素,i的合法值应该是(1≤i≤n+1)。

顺序表结构适宜进行随机访问,而链表适宜进行插入、删除。

顺序表的存储密度等于 1 。链表的存储密度 小于 1。

设某顺序表中第一个元素的地址是Base,每个结点占m个单元,则第i个结点的地址为(Base+(i-1)×m)。

在顺序表中,逻辑上相邻的两个元素一定也相邻。

假设删除长度为n的顺序表中的每个元素的概率相同,则删除一个元素平均要移动的元素个数是((n-1)/2)。

数组本身不能进行插入和删除,因为数组的长度是不可变的。(在某些语言中)

若某线性表经常做插入、删除操作,易采用 链式结构存储。【请填 顺序 或 链式】

 

抽象数据类型具有数据抽象、信息隐蔽的特点

一个抽象类型包括数据对象、数据对象中各元素间的结构关系一组处理数据的操作

数据结构的逻辑结构分为集合、线性、层次网状四种

数据结构的存储结构分为顺序非顺序 两种。

在线性结构、树形结构和图结构中,数据元素之间分别存在着一对一、一对多多对多联系。

若需要利用形式参数直接访问修改实参值,则应将形参说明为同类型指针参数参数。

当需要用一个形式参数直接改变对应实参的值时,该形式参数应说明为与实参同类型的指针变量参数

算法具有 有限性、确定性可行性、输入、输出五大特性。
算法设计的要求是:正确性、可读性 、健壮性和高效率和低存储

当需要用一个形式参数直接改变对应实参的值时,该形式参数应说明为与实参同类型指针参数

算法设计的要求是:正确性、可读性 、 健壮性  和高效率和低存储  。

算法具有 有限性、确定性、可行性、输入、输出五大特性。

数据的逻辑结构{1.线性结构1:1:(线性表,栈和队列,字符串,数组和广义表)2.非线性结构:(树1:m,图m:n)}

数据的存储结构{顺序存储(一组连续配置单元),非顺序存储(一组任意配置的单元)}

在高级语言(如C或 PASCAL)中,指针类型是原子类型X错

数据的最小单位是(数据项 )。

线性表的特点:同一性、有穷性、有序性。

线性表是具有n个(数据元素)的有限序列(n>0)除第一个和最后一个元素以外,其余的每个元素都只有唯一的直接前驱和直接后继。顺序、链式两种存储结构。

抽象数据类型三要素:数据元素、结构关系、基本操作。基本操作运算包括(9种):初始化、销毁、置空、判空、求长度、查找、存取、插入、删除。抽象数据类型一经定义可多次使用。

若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为(O(n))(1<=i<=n+1)。

若长度为n的线性表采用顺序存储结构,删除第i个位置的元素,需要移动的元素个数为(n-i)。

对一个长度为n的顺序表,假设在任何位置上插入一个元素的概率是相等的,那么插入一个元素时要移动表中的()个元素。

通过表达式(L->next)->data可以获取单链表L中首元素结点的数据值。

在带头结点的非空单链表中,头结点的存储位置由头指针指示。
在一个单链表中P所指结点后插入一个S所指结点时,应执行语句:S->next=P->next 或 s->next=p->next和 P->next=s。

在带头结点的非空单链表中,除首元素结点外,其它任一元素结点的存储位置由其直接前驱的next域 或 后继指针 或 后继指针域指示。

对链表进行插入和删除操作时不必移动链表中结点。

设指针变量p指向单链表中结点A的直接前驱,若删除单链表中结点A,则需要修改指针的操作序列为(q=p->next;p->next=q->next;free(q);)。
有一个带头结点的循环单链表HEAD,则判断其是否为空链表的条件是 HEAD-〉NEXT==HEAD   

在单向循环链表中,从表中任意结点出发都可以顺着next域访问到表中所有元素

循环链表结构的特点--首尾相连。

判别循环单链表L的当前节点P是否为表尾结点条件是 p->next==L,即p->next是否指回到头。

一般单链表L的当前结点P是否为表尾的判别条件是p->next==NULL,即p->next是否为空。

与单链表相比,双向链表的优点之一是访问前后相邻结点更方便

 

你可能感兴趣的:(数据结构,算法,数据结构,算法)