码迷,mamicode.com
首页 > 编程语言 > 详细

C++链表

时间:2014-06-27 11:03:00      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   code   http   ext   

#include <iostream>
#include <string.h>
using namespace std;

class Student
{
public:
    Student (char *name);
    ~Student();
public:
    char name[30];
    Student *next;
    static Student *point;
};

Student::Student (char *name)
{
    strcpy(Student::name,name);
    this->next=point;
    point=this;
}

Student::~Student ()//析构过程就是节点的脱离过程
{
    cout<<"析构:"<<name<<endl;

    if(point==this)
    {
        point=this->next;
        cin.get();
        return;
    }
    for(Student *ps=point;ps;ps=ps->next)
    {
        if(ps->next==this)
        {
        cout<<ps->next<<"|"<<this->next<<endl;
        ps->next=next;//=next也可以写成this->next;
        cin.get();
        return;
        }
    }
    cin.get();
}

Student* Student::point=NULL;
int main()
{
    Student *c = new Student("marry");  //注意这里用的*c
    Student a("colin");
    Student b("jamesji");
    delete c;    //所以才能用delete
    Student *fp=Student::point;
    while(fp!=NULL)
    {
        cout<<fp->name<<endl;
        fp=fp->next;
    }
    cin.get();
}

this替代了以前的current指针。  全局指针在这里被类的静态成员指针所替代(类的静态成员完全可以替代全局变量

bubuko.com,布布扣是等链表都输出完后才开始析构吗?

析构函数

 for(Student *ps=point;ps;ps=ps->next)
    {
        if(ps->next==this)
        {
        cout<<ps->next<<"|"<<this->next<<endl;
        ps->next=next;//=next也可以写成this->next;
        cin.get();
        return;
        }
    }
是都没用到吗?

C++链表,布布扣,bubuko.com

C++链表

标签:style   class   blog   code   http   ext   

原文地址:http://www.cnblogs.com/qbmiller/p/3810875.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!