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

链表的插入删除和查找_C++实现

2011-09-11 17:02 507 查看
郑州的雨似乎没停过

连着下了有半个月了吧

现在穿短袖都很冷

不知道是不是真的要入秋了

今天把严蔚敏老师的数据结构视频看完了

下面开始进入实践阶段

下午抽了一段时间
把链表的插入删除和查找用C++实现了

插入删除和查找等操作都已封装在DATA类里了

这里插播点其他的

其实我一直对面向对象的概念很模糊

直到看了孙新老师的视频才恍然大悟

孙老师当时举了一个例子

说设计使用一辆车的时候

如果采用面向过程的思想就是传过来一个参数

然后用户设计如何使用这辆车

而如果是采用面向对象的思想

在设计这辆车的时候

就会把有关车的各种操作变成这辆车的固有属性

然后用户调用车本身的功能来实现这辆车的使用

一点浅薄的见解

纰漏百出

见笑

上代码

"head.h"

#include<iostream>
using namespace std;

class ATOM
{
public:
ATOM(){num=0;next=NULL;}
public:
int num;
ATOM *next;
};

class DATA
{
public:
DATA(){head=p0=p1=NULL;}
void Insert();
void Delete();
void Search();
void Print();
private:
ATOM *head,*p0,*p1;
int n;
};

void DATA::Insert()
{
cout<<"Insert Called !"<<endl<<endl;
cout<<"Please Enter The Num You Want To Insert :"<<endl<<endl;
cin>>n;
cout<<endl;
if(head==NULL)
{
head=new ATOM;
head->num = n;
head->next =NULL;
}
else
{
p0=p1=head;
while(p1!=NULL&&n>p1->num)
{
p0=p1;
p1=p1->next;
}
if(p1==NULL)
{
p1=new ATOM;
p0->next=p1;
p1->num=n;
p1->next=NULL;
}
else
{
if(p1==head)
{
head=new ATOM;
head->num=n;
head->next=p1;
}
else
{
p0->next=new ATOM;
p0=p0->next;
p0->num=n;
p0->next=p1;
}
}
}
}

void DATA::Delete()
{
cout<<"Delete Called !"<<endl<<endl;
if(head==NULL)
{
cout<<"Error ! No data ! "<<endl<<endl;
}
else
{
cout<<"Please Enter The Num You Want To Delete :"<<endl<<endl;
cin>>n;
p0=p1=head;
while(p1!=NULL&&p1->num!=n)
{
p0=p1;
p1=p1->next;
}
if(p1==NULL)
{
cout<<"Not found !"<<endl<<endl;
}
else
{
if(p1==head)
{
p0=head;
head=head->next;
delete p0;
}
else
{
p0->next=p1->next;
delete p1;
}
}
}
}

void DATA::Search()
{
cout<<"Search Called !"<<endl<<endl;
p1=head;
if(p1==NULL)
{
cout<<"Error ! No Data !"<<endl<<endl;
}
else
{
cout<<"Please Enter The Num You Want To Search :"<<endl<<endl;
cin>>n;
while(p1!=NULL&&p1->num!=n)
{
p1=p1->next;
}
if(p1==NULL)
{
cout<<"Not Found !"<<endl<<endl;
}
else
{
cout<<"Found !"<<endl<<endl;
}
}
}

void DATA::Print()
{
cout<<"Print Called !"<<endl<<endl;
if(head==NULL)
{
cout<<"Error ! No Data !"<<endl<<endl;
}
else
{
p1=head;
while(p1!=NULL)
{
cout<<p1->num<<endl;
p1=p1->next;
}
cout<<endl;
}
}


"***.cpp"

#include<iostream>
#include "head.h"
using namespace std;

int main()
{
DATA data;
while(1)
{
cout<<"Your Choice , Please :"<<endl<<endl;
cout<<"1 : Insert"<<endl
<<"2 : Delete"<<endl
<<"3 : Search"<<endl
<<"4 : Print"<<endl
<<"5 : Quit"
<<endl<<endl;
int choice;
cin>>choice;
switch(choice)
{
case 1:
data.Insert();
break;
case 2:
data.Delete();
break;
case 3:
data.Search();
break;
case 4:
data.Print();
break;
case 5:
return 0;
default:
cout<<"Sorry , Please Enter The Right Choice As Shown Above ..."<<endl;
break;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐