c++ 链表类创建 demo

来源:互联网 发布:意大利火车时刻表软件 编辑:程序博客网 时间:2024/06/16 00:40

1_student_link_list.cpp

#include<iostream>using namespace std;struct student{    int id;string name;int age;    student()=default;    student(int i,string n,int a)    :id(i),name(n),age(a)    {}    student(student &s){        id=s.id;name=s.name;age=s.age;    }    ~student(){}    student * next=nullptr;};student * head=nullptr;int create_stu_list(){    student* p=nullptr;    char ch;    while(1)    {        p = new student();        cin>>p->id>>p->name>>p->age;        p->next = head;        head = p;        cout<<"是否继续?[Y/n]";        cin>>ch;        if(ch == 'n' || ch== 'N')            break;    }    return 0;}int show_stu_list(){    student *p = head;    while(p)    {        cout<<p->id<<" "<<p->name<<" "<<p->age<<endl;        p = p->next;    }    return 0;}int main(){    create_stu_list();    show_stu_list();}

2_student_list_class.cpp

#include<iostream>using namespace std;struct student{    int id;string name;int age;    student()=default;    student(int i,string n,int a)    :id(i),name(n),age(a)    {}    student(student &s){        id=s.id;name=s.name;age=s.age;    }    ~student(){}    student * next=nullptr;};struct stu_list{    private:    student * head=nullptr;    public:    int create_stu_list()    {        student* p=nullptr;        char ch;        while(1)        {            p = new student();            cin>>p->id>>p->name>>p->age;            if(cin.fail())break;            p->next = head;            head = p;//          cout<<"是否继续?[Y/n]";//          cin>>ch;//          if(ch == 'n' || ch== 'N')//              break;        }        return 0;    }    int show_stu_list()    {    student *p = head;    while(p)    {        cout<<p->id<<" "<<p->name<<" "<<p->age<<endl;        p = p->next;    }    return 0;}};int main(){    stu_list sl;    sl.create_stu_list();    sl.show_stu_list();//  stu_list sl1;//  sl1.create_stu_list();//  sl1.show_stu_list();//  create_stu_list();//  show_stu_list();}

3_work.cpp

#include<iostream>using namespace std;struct student{    int id;string name;int age;    student()=default;    student(int i,string n,int a)    :id(i),name(n),age(a)    {}    student(student &s){        id=s.id;name=s.name;age=s.age;    }    ~student(){}    student * next=nullptr;};struct stu_list{    private:    student * head=nullptr;    public:    int create_stu_list()    {        student* p=nullptr;        char ch;        while(1)        {            p = new student();            cin>>p->id>>p->name>>p->age;            if(cin.fail())break;            p->next = head;            head = p;//          cout<<"是否继续?[Y/n]";//          cin>>ch;//          if(ch == 'n' || ch== 'N')//              break;        }        return 0;    }    int show_stu_list()    {    student *p = head;    while(p)    {        cout<<p->id<<" "<<p->name<<" "<<p->age<<endl;        p = p->next;    }    return 0;}//return value: 0/OK,-1/failed;int insert(student &s){    student *p =new student(s);    if(p == nullptr){        perror("new p");        return -1;    }    p->next = head;    head = p;    return 0;}int remove(int id){    student* p=head,*q=head;    while(p)    {        if(p->id == id)            break;        q =p;        p=p->next;    }    if(p){        if(p == head){            head = head->next;        }else            q->next = p->next;        delete p;        return 0;    }else        return -1;  }};int main(){    stu_list sl;    student s(1005,"zhaoqi",20);    sl.create_stu_list();    sl.insert(s);    sl.show_stu_list();    cout<<"delete 1003:--------------"<<endl;    sl.remove(1005);    sl.remove(1004);    sl.show_stu_list();//  stu_list sl1;//  sl1.create_stu_list();//  sl1.show_stu_list();//  create_stu_list();//  show_stu_list();}

4_work.cpp

#include<iostream>using namespace std;struct student{    int id;string name;int age;    student()=default;    student(int i,string n,int a)    :id(i),name(n),age(a)    {}    student(student &s){        id=s.id;name=s.name;age=s.age;    }    ~student(){}    student * next=nullptr;};struct stu_list{    private:    student * head=nullptr;    public:    int create_stu_list()    {        student* p=nullptr;        char ch;        while(1)        {            p = new student();            cin>>p->id>>p->name>>p->age;            if(cin.fail())break;            p->next = head;            head = p;//          cout<<"是否继续?[Y/n]";//          cin>>ch;//          if(ch == 'n' || ch== 'N')//              break;        }        return 0;    }    int show_stu_list()    {    student *p = head;    while(p)    {        cout<<p->id<<" "<<p->name<<" "<<p->age<<endl;        p = p->next;    }    return 0;}//return value: 0/OK,-1/failed;int insert(student &s){    student *p =new student(s);    if(p == nullptr){        perror("new p");        return -1;    }    p->next = head;    head = p;    return 0;}int remove(int id){    student* p=head,*q=head;    while(p)    {        if(p->id == id)            break;        q =p;        p=p->next;    }    if(p){        if(p == head){            head = head->next;        }else            q->next = p->next;        delete p;        return 0;    }else        return -1;  }int reserve_stu_list(){    student * new_head=nullptr,*p;    if(head == nullptr)return -1;    while(head)    {        p = head;        head=head->next;        p->next = new_head;        new_head = p;    }    head = new_head;    return 0;}int release_stu_list(){    student *p=head,*q=head;    while(p)    {        q = p->next;        delete p;        p = q;    }    head= nullptr;}};int main(){    stu_list sl;    sl.create_stu_list();//  cout<<"reserve list:-----------"<<endl;//  sl.reserve_stu_list();    sl.release_stu_list();    sl.show_stu_list();}
0 0
原创粉丝点击