单向链表和二进制
链表由数据(data)和指针(pointer)组成,数据是自己定义的,可以是数字,字符串等等……而指针是由操作系统决定的。2的32次方大概是2g,所以4g内存需要64位的系统。
数组的存放位置肯定是挨着的。
每一个数据和指针就是一个结点(node)。
链表(linklist)包含第一个地址(head)和最后一个地址(tail) *代表是指针地址,有固定的存储,并不是自己定义的。 可以*lnode是指针指向lnod
如何向表中插入最后一个数据?
首先向申请一块内存,然后插入数据,指针为null,把上一个的指针null改为最后一个的存储位置。最后!把表中的最后一个地址改为最后新的地址。
如何向表中删除第一个数据?
定义一个变量,把lnode的内容复制过去,再把lnode的head改为新的第一个,然后把变量删了(free)。
二进制转十进制:每一个数乘以他的位权相加。
1101 1*2的0次方+0*2的1次方+1*2的2次方+1*2的3次方=1+0+4+8=13
十进制转二进制:用商对二取余
27 27/2=13……1 13/2=6……1 6/2=3……0 3/2=1……1 1/2=0……1 1101
双向链表:每一个结点都有两个指针,在插入和删除时需要修改两个方向的指针。