链表的创建,插入,删除

来源:互联网 发布: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);}



原创粉丝点击