您的位置:首页 > 编程语言 > C语言/C++

c++ 链表类创建 demo

2016-03-30 10:52 344 查看
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();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: