为了账号安全,请及时绑定邮箱和手机立即绑定

已采纳回答 / qq_胡布归_0
构造函数和析构函数的名字应该与类名相同,所以你的类是List1,那对应的构造函数和析构函数名字应该是List1()和~List1()
int List:: LocateElem(Node *pNode)
{
int count = 1;
Node *CurrentNode = m_pList->next;
while (CurrentNode != NULL)
{
if(CurrentNode->data == pNode->data)
{
return count;
}
count++;
CurrentNode = CurrentNode->next;
}
return -1;
}

头结点是不存储元素的,count为0的情况是不存在的,所以直接设置为1;可以确保定位的是准确的节点。

最赞回答 / 黑巫师0
首先需要明确的是,链表和数组不同,链表不能通过下标 i 来直接获取到 i 所对应的结点,而是先要定义一个计数器在循环中数数,通过结点的next一直遍历到第 i 个结点,即当计数器的值等于 i 时。因此只能通过从头结点开始遍历的方式来找第 i 个结点 ,而不能通过 i 来直接获取第 i 个结点。说的有点啰嗦。。。希望对你有帮助~
感觉自己的C++被鄙视了,2333
如果表内有多个相同元素呢
上限为length可以确保我获取的值是有意义的,不会找到已删除的数
收获很大,感谢老师,辛苦老师

最新回答 / 慕粉2359383080
List.h应该放在头文件中,而List.cpp应该放在源文件中,只是用#include"List.h"包含进源文件中
可能是因为大学课堂里都是用C语言形式来讲的数据结构把
这么好的课怎么那么少人看呢,而且是免费的,真的是被雪藏了
作为一名Java程序员,我们究竟做错了什么,好难找Java版的数据结构,啊啊啊 ||_||

最新回答 / kinpowoo
老师是这么说的,比如你要在主文件的函数中调用插入节点的函数,在主文件的函数中声明一个Node node对象,一般在函数中申请变量都是在栈中申请,不会在堆中,在栈中申请的对象在函数执行完成后就销毁了,可以节约内存资源。这时你把这个node对象的地址传入插入节点的函数中,插入节点函数只需要拿到这个node对象中的值,然后自己去堆中申请内存。  如果你直接引用传进来的node对象,这个对象在外面函数执行完成后被系统销毁了,刚插入的值不复存在,就会引发错误,
很好很好 居然免费
赞赞赞,讲的非常详细清楚,希望老师继续出更多的视频
讲的太好了,终于找到可以让我听懂的讲法了
课程须知
"本课程是数据结构初级课程 1、熟练掌握C++语言基础语法"
老师告诉你能学到什么?
1、顺序表的工作原理 2、顺序表的实现方法及编码技巧 3、链表的工作原理 4、链表的实现方法及编码技巧 5、通讯录的实现原理及编码技巧

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消