线性表学习

1、       Java语言的下面几种数组复制方法效率:

System.arraycopy > clone > System.copyOf> for

2、       short a[100]sizeof(a)返回:200

short大小为2字节;

 

sizeof返回的值表示的含义(单位字节)

数组——编译时分配的数组空间大小;

指针——存储该指针所用的空间大小(存储该指针的地址长度,是长整形,应该为4

类型——该类型所占空间的大小

函数——函数返回类型所占的空间大小。函数返回类型不能是void

 

Java中数值范围:

byte 1个字节,应该字节有8位;

short 2个字节;

int 4个字节;

long 8个字节;

 

64位操作系统中,short int 都是4字节。

3、       数组比链表速度更快的是:

1)       原地逆序;(数组可以头尾交换,相当于处理n/2个数据,而链表至少得完整遍历一遍)

2)       返回中间节点

3)       选择随机节点

 

4、       对长度为n的线性表进行顺序查找,在最坏情况下所需要比较次数为:n

分析:最坏的情况就是需要查找的数在最后一位或者不在该线性表中,那么比较次数为n-1或者n,取最坏情况就是n

 

5、       最坏情况下,合并两个大小为n的已排序的数组所需要比较的次数为:2n-1

6Char x[]=”abcdefg”;

(等价于Char x[]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’,’\0’};

Char y[]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’};

分析:数组x的长度大于数组y的长度。字符串以’\0’结尾,多占一个空间。

 

6、       int  a[10],哪些方法可以表示a[1]

注意强制类型转换,char类型占一个字节,int4个字节。

(1) &a[0]+1;数组首元素地址加1,根据指针运算就是a[1]地址。

(2) (int *)&a+1;数组地址被强制转换为int*,再加1,和(1)表达一个意思。

(3) (int *)((char *)&a+sizeof(int));数组地址先被转换为char *,然后加4,根据指针运算,向前移动4*sizeof(char),之后被转换为int *,即是a[1]地址。

 

7、       顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的。

链式存储结构中每个节点都由数据域与指针域两部分组成,增加了存储空间。

8、       二维以上的数组是一种特殊意义的广义表;

数组一旦建立,结构的元素个数和元素间的关系不再变化;

数组采用顺序存储方式表示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值