Ⅰ 为什么线性表在顺序存储时,查找第i个元素的时间同i的值无关
顺序存储是先根据数据量的需要先分配好存储空间的,相当于先给数据分好了带编号的座位,所以可以直接找到。而链式是不事先定好存储空间的,就是第一个数据好了再给存第二个,且有个指针区指向下个数据的位置,所以要想找到第几个数据都要从头来
Ⅱ 什么是线性表的逻辑顺序
线性表就是n个具有相同特性的数据元素的有限序列,我们日常中使用的线性表包括:顺序表,链表,栈,队列,字符串等
我们在之前的学习中也知道,数据的存储包括两种存储方式,顺序存储 链式存储,而线性表在逻辑上线性结构,也就是连续的一条直线,在物理上存储时,通常以数组和链式结构的形式来进行存储。
线性表的存储在逻辑上上连续的一条线,进行线性存储的,而在物理存储上,线性表的存储是满足数组和链式结构相结合的形式来进行存储的通常以数组和链式结构的形式存储。
线性表的定义:用数据元素的有限序列表示的表,我们称之为线性表
比如 a1,a2,a3,a4…an,其中a1就是线性表的起点,而a1中的下标1表示的就是元素的序号,它表示了这个元素在线性表中的位置,而相对a2来说它的直接前驱就是a1,而它的直接后继就是a3,而an中n表示的就是这个线性表的长度.
注意:同一个线性表具有相同的特性,相邻的数据元素之间是序偶关系(表示的就是有序成对的意思)
Ⅲ 硬盘序列号是指什么
硬盘序列号分硬盘物理序列号和硬盘逻辑序列号
前者是全世界唯一的
后者是各种磁盘工具格式化硬盘时产生的可以修改
很多注册软件只能在一台机器上运行的原因就是利用了物理序列号唯一
不过从驱动层做手脚的话 应该也是可以绕过的
具体的得看编程水平了
Ⅳ 什么是逻辑顺序,什么是物理顺序
也许你指的是编程,这里我不说编程,来理解下物理顺序,和逻辑顺序。
物理顺序是在真实位置上的前后顺序,比如一个班,你可以认为是座位顺序。。逻辑顺序,是逻辑上的一种排序,他除了自己的逻辑序号,还有物理序号。。。比如成绩顺序,我们相要找到成绩最好的人的座位,只需要逻辑排序,找第一名,并得到该学生的座位号就可以了。。。
。实际上你只能通过物理序号找到真实得到这个东西,但逻辑顺序却是你希望的一种排序,比如我不关心你家在哪,我只关心你家是否是有钱人,我先知道你有钱,我才想知道你住在哪,家里有啥,你不可能挨家挨户查户口吧。。。
Ⅳ 设计一个算法,找第一个值最小的元素的逻辑序号,并给出算法的时间空间复杂度和空间复杂度。
着自数据类型做相应修改: void Delete(SeqList L, DataType x) { // 顺序表删除算 int i = 0, j; for (j = 0; j L->length; j ++) if (L->data[j] != x) { if (i j) L->data[i] = L->data[j]; i ++; } L->length = i; } void Delete_List(LinkList head, DataType x) { // 结点单链表删除算 Node *p, *q, *s; p = head->next; q = head; while (p != NULL) { if (p->data != x) q = p; else { s = p; q->next = s->next; free(s); } p = q->next; }
Ⅵ 什么是表的物理顺序和逻辑顺序
什么是表的物理顺序和逻辑顺序
1、线性表的逻辑结构的基本特征
图2-1 线性表
线性结构是一个数据元素的有序(次序)集
1).集合中必存在唯一的一个“第一元素”;
2).集合中必存在唯一的一个“最后元素”
3).除最后元素之外,均有唯一的后继;
4).除第一元素之外,均有唯一的前驱.
2、线性表的顺序存储实现
顺序表是线性表的顺序存储结构.用一组地址连续的存储单元依次存储线性表的元素.
顺序表特点:
逻辑顺序与物理顺序一致
属随机存取的存储结构,即存取每个元素所花时间相等
假设线性表中每个元素需占用c个存储单元,计算结点存储地址公式:
LOC(ai+1)=LOC(ai)+c (1)
LOC(ai)=LOC(a1)+(i-1)*c (2)
顺序表上实现基本运算及时间复杂度分析.
Ⅶ 什么是表的物理顺序和逻辑顺序二者有何区别
1、线性表的逻辑结构的基本特征
图2-1 线性表
线性结构是一个数据元素的有序(次序)集
1).集合中必存在唯一的一个“第一元素”;
2).集合中必存在唯一的一个“最后元素”
3).除最后元素之外,均有唯一的后继;
4).除第一元素之外,均有唯一的前驱。
2、线性表的顺序存储实现
顺序表是线性表的顺序存储结构。用一组地址连续的存储单元依次存储线性表的元素。
顺序表特点:
逻辑顺序与物理顺序一致
属随机存取的存储结构,即存取每个元素所花时间相等
假设线性表中每个元素需占用c个存储单元,计算结点存储地址公式:
LOC(ai+1)=LOC(ai)+c (1)
LOC(ai)=LOC(a1)+(i-1)*c (2)
顺序表上实现基本运算及时间复杂度分析。
1)插入算法:
假设在第 i 个元素之前插入的概率为 pi,则在长度为n的线性表中插入一个元素所需移动元素次数的期望值为:
若假定在线性表中任何一个位置上进行插入的概率都相等,则移动元素的期望值为:
插入算法的平均时间复杂性为 ,平均时间复杂性量级为O(n)。
2)删除算法:
假设删除第 i 个元素的概率为qi , 则在长度为n的线性表中删除一个元素所需移动元素次数的期望值为:
若假定在线性表中任何一个位置上进行删除的概率都是相等的,则移动元素的期望值为:
删除算法的平均时间复杂性为
,平均时间复杂性量级为O(n)。
3、线性表的链式存储实现
链接实现线性表,可以克服顺序表的缺点。线性表的常见链式存储结构有:单链表、循环链表、双链表。
1)单链表
用一组地址任意的存储单元存放线性表中的数据元素。
元素(数据元素的映象)+ 指针(指示后继元素存储位置的) = 结点
链式存储特点:
逻辑顺序与物理顺序有可能不一致
属顺序存取的存储结构,即存取每个数据元素所花费的时间不相等
几种运算在单链表上的实现,包括:建立单链表、查找、插入、删除等。
2)循环链表
表中最后一个结点的指针域指向头结点,链表形成一个环。
特点:从表中任何一个结点出发可扫描整个链表中的所有结点。
3)双链表
特点: 每个结点有两个指针域,克服单链表的单向性
注意:“插入”、“删除”操作,与单链表有很大不同。需要同时修改两个方向上的指针。
4、顺序表和链表的比较
空间性能比较、时间性能比较。
顺序存储结构:
优点:存储密度大、简单。数据元素的地址可以通过公式计算。
缺点:插入、删除操作效率低,存储空间需要按最大需求事先分配,且要求一片连续的存储空间,容易造成浪费。
链式存储结构:
优点:存储空间按需分配;插入、删除操作效率高。
缺点:链表中的结点需要存储指针,构造本身比顺序存储结构大。
时间复杂性量级
定位运算,顺序表和单链表,均为 O(n)
读表元:顺序表-O(1) (随机存取);单链表-O(n)
链入、删除:顺序表-0(n); 单链表-O(1) (插入、删除方便)