链表的创建,插入,删除
来源:互联网 发布:php erp源码 编辑:程序博客网 时间:2024/05/17 07:46
#include<iostream.h>struct Node{int num;Node *next;};Node *Creat(){int n=0;Node * p1,*p2,*head;//Node *p1,p2,head和这个声明不同head=NULL;p1=new Node; p2=new Node;head=new Node;head->next=p2;cout<<"input a num"<<endl;cin>>p2->num;while(p2->num!=0){ cout<<"input a num"<<endl;cin>>p1->num; p1->next=NULL;//系统保证指向空指针的地方不指向任何函数或变量 p2->next=p1; p2=p1;p1=new Node;}return head;}void Print(Node *a){Node *p=a->next;while(p->num!=0){ cout<<p->num<<endl; p=p->next;}}void Insert(Node *a){Node *p=new Node; cout<<"input a num"<<endl;cin>>p->num; p->next=a->next;a->next=p;}void Delete(Node *a){int b;int n=0; cout<<"input a num that you want to delete"<<endl;cin>>b; Node *p=a;Node *p1=p->next; while(p1->num!=0){ if(p1->num==b) { p->next=p1->next; n=1; break; } p=p1; p1=p1->next;}if(n==0)cout<<"没有这个数"<<endl;}main(){Node *a;//a=new Node; //不加a=new Node; 直接cout<<a->num<<endl; 就会出错,因为还没初始化a=Creat(); cout<<endl; cout<<endl; cout<<endl; Print(a); cout<<endl; cout<<endl; cout<<endl; Insert(a); cout<<endl; cout<<endl; cout<<endl; Print(a); cout<<endl; cout<<endl; cout<<endl; Delete(a); Print(a);}