新微赢技术网

标题: 类做链表 怎么做 [打印本页]

作者: lianeh    时间: 2009-11-3 00:49
标题: 类做链表 怎么做
老师还没讲怎么做
但我感觉和结构差不多呀所以提前做了
怎么总是提醒类内连接指针没有声明;
作者: 皇家㊣贺v    时间: 2009-11-3 00:49
看一下你的类
作者: 金马    时间: 2009-11-3 00:49
class student
{
int x;
.....
public:
...
class student *pr;
class student *pl;
};
作者: 羽衣独舞    时间: 2009-11-3 00:49
class student *pr=NULL;
class student *pl=NULL;
作者: 想念~!    时间: 2009-11-3 00:49
类是把数据和方法封装起来.

  1. struct Node //链表的节点
  2. {
  3. int data;
  4. Node *next;
  5. };

  6. //类声明
  7. class List
  8. {
  9. private:
  10. Node *head;
  11. Node *tail;
  12. public:
  13. List();
  14. ~List();
  15. void addToTail(int);
  16. void deleteFromTail();
  17. };

  18. //类方法的定义
  19. List::List() //构造
  20. {
  21. head = tail = 0;
  22. }
  23. List::~List() //析构
  24. {
  25. Node *p;
  26. while(head != 0)
  27. {
  28. p = head->next;
  29. delete head;
  30. head = p;
  31. }
  32. }

  33. void List::addToTail(int x) //增加到结尾
  34. {
  35. Node *tmp = new Node;
  36. tmp->data = x;
  37. tmp->next = 0;
  38. if(tail != 0)
  39. {
  40. tail->next = tmp;
  41. tail = tail->next;
  42. }
  43. else
  44. head = tail = tmp;
  45. }
  46. void List::deleteFromTail() //从结尾删除
  47. {
  48. if(head == 0)
  49. return;
  50. else if(head == tail)
  51. {
  52. delete tail;
  53. head = tail = 0;
  54. }
  55. else
  56. {
  57. Node *tmp = head;
  58. while(tmp->next != tail)
  59. tmp = tmp->next;

  60. delete tail;
  61. tail = tmp;
  62. tail->next = 0;
  63. }
  64. }
复制代码


可以在List中加入其他的需要的方法

使用时,如

List a; //定义了链表一个对象
a.addToTail(5); //a调用成员函数
a.deleteFromTail();
作者: 为你执著    时间: 2009-11-3 00:49

知道了
谢谢斑竹 我还以为用类的名字做呢
原来这样....
十分感谢




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2