中易网

一个占4字节的指针和一个需要12字节的数据元素,当数组在什么状态下链表实现比基于数组的实现要求空间更少

答案:6  悬赏:30  
解决时间 2021-02-03 21:29
少于1/2满? 少于2/3满? 少于1/3满? 少于3/4满?
原因?原因?
解释的清楚再追加分、、、
最佳答案
没有分组函数为什么要group by
create table deptage(课程号 char,学号 smallint,成绩 smallint)
insert into deptage(课程号,学号,成绩)
select 课程号,学号,成绩
from 选课
where 成绩<60
全部回答
如果用链表 struct tag { struct tag *pTag; char elem[12]; }; 然后就是链表的操作,初始化,添加,删除,查找。。。。 用数组: char elem[N][12]; 如果确定有100个元素,那么N就是100。 数组的确定: 在使用数组的同时需要预测数据元素的个数。 如果预测为100,只有10个元素,那么则会浪费掉空间。 如果实际元素个数要比100大,那么预测空间会不够用。 这个缺点动态链表不存在,它可以动态添加删除元素。 但是在元素个数确定的情况下,存储每个元素的时候, 链表会比数组多使用4字节空间。 对于你的问题,比如定义的数组可以存N个元素,但是你的 元素只有n个: 那么数组实际使用的空间是12*N字节 链表使用的空间是16*n字节 当12*N = 16*n时,他们使用的空间一样。。。。。。 剩下的你自己推理吧。
越想越看不懂了
C中的链表是一个结构体 由两部分组成 数据元素和指针 按照你的题目 一个链表的结构体(Node)占有16字节(4+12) 而数组只有数据元素构成 所以数组的一个单位长度为12字节 但是 数组是定长的,里面可以不放元素但是会开辟空间 比如你定义个N=100的数组 但是只有20个数据(元素)要放入 那么这个数组就占了1200字节 但是这个长度为100的数组里面不一定全都放了元素 我举的例子就只要放入20个数据 如果用链表 就不用开辟一个100个元素的空间 20个元素的空间就够了 所占用的字节就是20*16=320字节 所以你说的题目 根据已知条件可以列出方程 12*N >= 16*x (x
  • 4楼网友:高冷不撩人
  • 2021-02-03 01:50
在不考虑12字节的数据元素会带来填充字节的情况下,用链表的话,一个结点需要16个字节,而用数组一个元素是12字节。假设数组大小为x,实际数据个数为y,则用链表需要16y字节,用数组需要12x字节,由16y<12x,得y/x<3/4
  • 5楼网友:浪女动了心
  • 2021-02-03 01:29
id[1]这个代表结构体; id[1].next ;这个是结构体指针; 相当于是a[1]=a[1].next;他们两个是不能互相赋值的。 a[1]=*a[1].next;应该是可以的,这不是把next的地址给a,要想赋给a,a[1].next=a[2].next;同类的才可以赋值。 *(id+1)=*(id+1)->next ; 这个是指针,*代表指向的内容。 *(id+1)代表a[1],*(id+1)->next代表a[i+1].next指向的内容,等于是a[i+1]=a[i+1]next指向的结构体。 结构体的头地址是用&来取的,比如struct st{int id; struct st *next)}a[1]; &a[0]是第一个结构体的首地址,以此类推。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯