#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); }
链表的创建,插入,删除
最新推荐文章于 2022-12-12 16:26:36 发布