星期五
做了一下数据结构讲的单链表,简单实现了一下创建,查找,插入,删除,遍历
#include<iostream> using namespace std; typedef struct LNode{ int data; LNode *next; }LNode,*Linklist; void Initlist(Linklist &L) { L=new LNode; L->next=NULL; } void CreatList(int n,Linklist &L) { L->next=NULL; LNode* r=new LNode; r=L; for(int i=0;i<n;i++) { LNode* p=new LNode; cin>>p->data; p->next=NULL; r->next=p; r=p; } } int Locatelist(Linklist &L,int e) { int i=1; LNode* p=new LNode; p=L->next; while(p&&p->data!=e) { p=p->next; i++; } if(!p) return 0; else return i; } void Listinsert(Linklist &L,int i) { int n=0; LNode* p=new LNode; p=L; LNode* s=new LNode; while(n<i&&p) { p=p->next; ++n; } if(!p||n>i) cout<<"输入错误"<<endl; else { cin>>s->data; s->next=p->next; p->next=s; } } void Listdelete(Linklist &L,int i,int &e) { int n=0; LNode* p=new LNode; p=L; while(n<i-1&&(p->next)) { p=p->next; ++n; } if(!(p->next)||n>i-1||i<=0) cout<<"输入错误"<<endl; else { LNode* s=new LNode; s=p->next; e=s->data; p->next=s->next; delete s; } } void TraversalList(Linklist &L) { LNode* p=new LNode; p=L->next; while(p) { cout<<p->data<<" "; p=p->next; } cout<<endl; } int main() { int e=9999999; int a,b; Linklist L; Initlist(L); CreatList(5,L); cout<<"删除:"<<endl; cin>>b; Listdelete(L,2,e); if(e!=9999999) cout<<"删除的数为:"<<e<<endl; cout<<"插入:"<<endl; cin>>a; Listinsert(L,a); int c; cout<<"查找:"<<endl; cin>>c; if(Locatelist(L,c)==0) cout<<"没有"<<endl; else cout<<Locatelist(L,c)<<endl; cout<<"遍历:"<<endl; TraversalList(L); }