少于1/2满? 少于2/3满? 少于1/3满? 少于3/4满?
原因?原因?
解释的清楚再追加分、、、
一个占4字节的指针和一个需要12字节的数据元素,当数组在什么状态下链表实现比基于数组的实现要求空间更少
答案:6 悬赏:30
解决时间 2021-02-03 21:29
- 提问者网友:说不出醉人情话
- 2021-02-03 00:27
最佳答案
- 二级知识专家网友:木子香沫兮
- 2021-02-03 00:57
没有分组函数为什么要group by
create table deptage(课程号 char,学号 smallint,成绩 smallint)
insert into deptage(课程号,学号,成绩)
select 课程号,学号,成绩
from 选课
where 成绩<60
create table deptage(课程号 char,学号 smallint,成绩 smallint)
insert into deptage(课程号,学号,成绩)
select 课程号,学号,成绩
from 选课
where 成绩<60
全部回答
- 1楼网友:年轻没有失败
- 2021-02-03 03:49
如果用链表
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时,他们使用的空间一样。。。。。。
剩下的你自己推理吧。
- 2楼网友:佛说妍妍很渣
- 2021-02-03 03:01
越想越看不懂了
- 3楼网友:山鬼偶尔也合群
- 2021-02-03 02:30
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]是第一个结构体的首地址,以此类推。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯