找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 1176|回复: 3

[原创]C++程序设计实践报告

[复制链接]
发表于 2009-11-3 03:32:53 | 显示全部楼层 |阅读模式 IP:江苏扬州
C++作业,分享




附件: 只有本站会员才能下载或查看附件,请您 登录 或 注册
发表于 2009-11-3 03:32:57 | 显示全部楼层 IP:江苏扬州
支持一下

感觉mylist的删除考虑的不全面,改了一下,不过没运行。

  1. void Delete(T &inform) //删除
  2. {
  3. bool found=false;

  4. if( (head == tail) && (head->info == inform) ) //查找到,而且只有一个元素
  5. {
  6. delete head;
  7. head = tail = 0;
  8. found=true;
  9. }
  10. else if(head->info == inform) // 在表头,而且链表不止一个元素
  11. {
  12. tmp = head;
  13. head = head->next;
  14. delete tmp;
  15. found=true;
  16. }
  17. else // 不在head
  18. {
  19. CNode<T> *tmp = head->next, *pred = head ;

  20. while( (tmp != 0) && (tmp->info != inform) ) //查找
  21. {
  22. pred = tmp;
  23. tmp = tmp->next;
  24. }

  25. if( tmp != 0 ) //找到
  26. {
  27. if( tmp == tail ) //是最后一个元素
  28. tail = pred;
  29. pred->next = tmp->next;
  30. delete tmp;
  31. found=true;
  32. }
  33. }
  34. if(!found)cout<<"Cann't delete a nonentity information !"<<endl;
  35. else cout<<"\n 删 除 成 功!"<<endl;
  36. }
复制代码
回复

使用道具 举报

发表于 2009-11-3 03:32:58 | 显示全部楼层 IP:江苏扬州
to woodhead:
谢谢指出,说实话,我没太在意编这个,这只是我们C++的作业,我也就花了2,3个小时写的,的确是如此,我好蠢,这么低级的错误,呵呵~
回复

使用道具 举报

发表于 2009-11-3 03:32:59 | 显示全部楼层 IP:江苏扬州
刚才改了下:
void Delete(T &inform) //删除
{
bool found=false;CNode<T>* oldNode=NULL;
if(head==NULL) //空表
{cout<<"Can't delete from a empty list!\n";return;}
else if(head->next==NULL)//只有一个元素的表
{
if(head->info == inform)
{
delete head;delete tail;head=NULL;tail=NULL;found=true;
}
else found=false;
}
else
for(CNode<T>*newNode=oldNode=head;newNode;)
{
if(newNode->info==inform)
{
if(newNode==head)//元素在表头
{
head=head->next;//更新链表头
delete newNode;
}
else //不在表头
{
oldNode->next=newNode->next;
delete newNode;
}
found=true; //找到该数据
break;
}
else
{
oldNode=newNode;
newNode=newNode->next;
}
}
if(!found)cout<<"Cann't delete a nonentity information !"<<endl;
else cout<<"\n 删 除 成 功!"<<endl;
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-30 13:16 , Processed in 0.240930 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表