第六次作业
1.学习笔记
2.代码列表
3.存在的问题及解决
(1)用链表代替数组进行数据的存储和操作的优点?
一是不需要事先定义存储空间大小,可以实时动态分配,内存使用效率高。
二是可以很方便的插入新元素(结点),使学生信息库保持排序状态,操作效率高。
(2)tail->next=p;
tail=p;
该程序段的意思?
把原来链表的尾结点的next域指向该新增的结点,把新增的节点加入到链表中。
4.pta中存在的问题及解决
2-2
设有如下定义的链表,则值为7的表达式是( )。 (1分)
struct st{
int n;
struct st *next;} a[3] = {5, &a[1], 7, &a[2], 9, NULL}, *p = &a;
&a代表整个数组的地址,a代表数组的首地址,区别是对于&a,大小是st*3,对于a大小是st,但二者都是a的首地址为值的。这也造成了C是不对的,因为&a+1实际指向了下个数组的首地址,超出了数组的范围。正确答案是D。