单向链表和二进制

链表由数据(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

 双向链表:每一个结点都有两个指针,在插入和删除时需要修改两个方向的指针。                                                                                                                  

posted @ 2018-01-16 17:33  程序图  阅读(123)  评论(0编辑  收藏  举报