链表的插入删除和查找_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; } } }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值