为了账号安全,请及时绑定邮箱和手机立即绑定
删除元素那里有个口误,应该是删除下标为i的元素,说成了删除第i个元素
ATEM0那个方法确实可以不用定义currentNodeBefore,但是你有没有想过这样就无法delete需要删除的node了?
事....事倍功半??
Node *currentNode=m_pList;
Node *currentNodeBefore=nullptr;
for(int a=0;a<i;a++)
currentNode=currentNode->next;
currentNodeBefore=currentNode;
currentNode=currentNode->next;
currentNodeBefore->next=currentNode->next;
pNode->data=currentNode->data;

这么写是一种更高效的循环。
void DeleteContact(List *pList)
{
Node node;
Person person;
cout << "Please input name:" << endl;
cin >> person.name;
cout << "Please input phone number:" << endl;
cin >> person.phone;
node.data = person;
int num = 0;
num = pList->LocatedElem(&node);
pList->ListDelete(num, &node);
}
尾节点好像没判,尾节点的next为空没进入if判断,万一尾节点的data等于要找的elem的data,不就没判了吗
后面应该不用加m-pList->next = NULL吧,它的currentNode等于m-pList->next已经被释放掉了啊
有点晕,没弄懂m-plist -> next 怎么就指向了下一个节点位置了
打卡(ฅ>ω<*ฅ)
想看一元多项式的讲解
太腹黑了,找到俘虏,审问完成后,干掉,哈哈哈
current Node before可以不用定义,直接用current Node-> next= currentNode -> next-> next
为啥newNode定义在堆上,后面的currentNode又直接定义在栈上了,这个定义在栈上还是堆上怎么决定?
应该是事半功倍吧
C++是面向对象编程语言的母版,对于想要Java,对照着C++代码就可以直接改造
课程须知
"本课程是数据结构初级课程 1、熟练掌握C++语言基础语法"
老师告诉你能学到什么?
1、顺序表的工作原理 2、顺序表的实现方法及编码技巧 3、链表的工作原理 4、链表的实现方法及编码技巧 5、通讯录的实现原理及编码技巧

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消