[求助]关于单链表的一个小问题~
数据结构书上关于单链表类的构造函数是这样的:List(const <Type> &value) { last=first=new ListNode<Type>(value); }
这样表头指针和表尾指针不就是同一个地址了吗?表头指针的指针域不就是NULL了吗?
反正我总觉得有问题,写了程序出来也有问题,不知道是我没弄懂还是书上写错了?
当一开始创建一个链表的时候,难道首指针不是尾指针吗?这就是把value作为链表的第一个成员来初始化链表啊
是空表的时候表头结点的确是表尾结点,但是已经有一个值了,那就应该是表尾结点的数据域存放这个值,表头结点的指针域再指向表尾结点,难道不是这么吗?
“是空表的时候表头结点的确是表尾结点,但是已经有一个值了,那就应该是表尾结点的数据域存放这个值,表头结点的指针域再指向表尾结点,难道不是这么吗?”当然不是这样的,开始时只是用表尾结点初始化表头结点,一旦给表尾结点一个值后,表尾结点自然要++,之后表头结点不是表尾结点了。
这是小弟遇见!!!
这个构造函数里已经传了一个值了,已经给表尾结点一个值了啊,表头结点就不应该是表尾结点啊
我觉得构造函数无值传递时,"开始时只是用表尾结点初始化表头结点,一旦给表尾结点一个值后,表尾结点自然要++,之后表头结点不是表尾结点了。"这样是对的,但是有值了,就不应该是这样了啊