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是否为空。
与单链表相比,双向链表的优点之一是访问前后相邻结点更方便。