选择
chr1:
1、逻辑结构就是数据元素间的逻辑关系,而不是数据元素内部的数据项之间的关系
2、数据结构概念包括数据之间的逻辑结构、数据在计算机中的存储方式和数据的运算三个方面。
3、数据的逻辑结构说明数据元素之间的顺序关系,它依赖于计算机的存储结构。
-错。逻辑结构可用不同的存储结构实现,此处要区分逻辑结构与物理结构的区别
4、线性的数据结构可以顺序存储,也可以链接存储。非线性的数据结构只能链接存储
-错。因为非线性结构既可以是顺序储存结构也可以是链式储存结构
6、三类基本数据结构是线性结构、树型结构和网状结构。
7、关于《数据结构》学科
《数据结构》是一门研究非数值计算的程序设计问题的学科 。
chr2:
1、对于顺序存储的长度为N的线性表,访问结点和增加结点的时间复杂度为:O(1), O(N)
题目字眼 “ 顺序存储 ” ,说明内存单元中分配的存储空间是连续的,所 以该线性表为数组形式存储,所以数组访问时,通过下标可随机访问,时间复杂度为O(1),而增加插入时,需要涉及大量元素的移动,所以时间复杂度为O(N)。
2、在N个结点的顺序表中,算法的时间复杂度为O(1)的操作是:访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)。
3、若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用哪种存储方式最节省时间? 顺序表。
4、如果最常用的操作是取第i个结点及其前驱,则采用( )存储方式最节省时间。 顺序表。
5、若长度为n的线性表采用顺序结构,在第i个数据元素之前插入一个元素,需要它依次向后移动(n-i)个元素。
线性表中元素的位序是从1开始的,而数组中元素的下标是从0开始的。
6、顺序表:线性表的顺序存储结构,在存、读数据时,不管是哪个位置,时间复杂度都是O(1);而插入或删除时,时间复杂度都是O(n)。这就说明,它比较适合元素个数不太变化,而更多是存取数据的应用。
优点:无需为表示表中元素之间的逻辑关系而增加额外的存储空间可以快速地存取表中任一位置的元素。
缺点:插入删除操作需要移动大量元素当线性表长度变化较大时,难以确定存储空间的容量
造成存储空间的碎片。
11、
在双向链表中,前驱指针为prior,后继指针为next,在p指针所指的结点后插入q所指向的新结点,其语句序列是(q->prior=p; q->next=p->next; p->next->prior=q; p->next=q; )
10、
数据结构数据结构中,在单链表的开始结点之前附设一个类型相同的结点,称之为头结点。头结点的数据域可以不存储任何信息,头结点的指针域存储指向开始结点的指针(即第一个元素结点的存储位置)。
作用:
1、防止单链表是空的而设的.当链表为空的时候,带头结点的头指针就指向头结点.如果当链表为空的时候,单链表没有带头结点,那么它的头指针就为NULL.
2、是为了方便单链表的特殊操作,插入在表头或者删除第一个结点.这样就保持了单链表操作的统一性!
3、单链表加上头结点之后,无论单链表是否为空,头指针始终指向头结点,因此空表和非空表的处理也统一了,方便了单链表的操作,也减少了程序的复杂性和出现bug的机会。
4、对单链表的多数操作应明确对哪个结点以及该结点的前驱。不带头结点的链表对首元结点、中间结点分别处理等;而带头结点的链表因为有头结点,首元结点、中间结点的操作相同 ,从而减少分支,使算法变得简单 ,流程清晰。对单链表进行插入、删除操作时,如果在首元结点之前插入或删除的是首元结点,不带头结点的单链表需改变头指针的值,在C 算法的函数形参表中头指针一般使用指针的指针(在C+ +中使用引用 &);而带头结点的单链表不需改变头指针的值,函参数表中头结点使用指针变量即可。