链表的插入删除和查找_C++实现
郑州的雨似乎没停过
连着下了有半个月了吧
现在穿短袖都很冷
不知道是不是真的要入秋了
今天把严蔚敏老师的数据结构视频看完了
下面开始进入实践阶段
下午抽了一段时间
把链表的插入删除和查找用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;
}
}
}