链式单链表的插入与删除...

/*链式链表的一些操作*/ #include<iostream> using namespace std; typedef struct node { int data; struct node *next; }SeqList;//定义链表的节点,数据域为整形..... void Creat_List1(SeqList *L,int n)//创建单链表.....(尾插入法) { node *p,*q; int i,x; p=L; for(i=1;i<=n;i++) { q=new node; cin>>x; q->data=x; q->next=NULL; p->next=q; p=q; } } void Creat_List2(SeqList *L,int n)//头插入法 { node *p; int i; for(i=0;i<n;i++) { p=new node; cin>>p->data; p->next=L->next; L->next=p; } } void Insert_List(SeqList *L,int i,int x)//插入..... { node *p,*q; int k=1; p=L; while(p&&k<=i-1) { p=p->next; k++; } if(!p) { cout<<"位置插入错误"<<endl; } else { q=new node; q->data=x; q->next=p->next; p->next=q; } } void Delete_List(SeqList *L,int i)//删除... { int k=1; node *p,*q; p=L; while(p&&k<i) { p=p->next; k++; } if(!p) { cout<<"删除位置不对"<<endl; } else { q=p->next; p->next=q->next; free(q); } } void SeqList_Out(SeqList *L) { node *p; p=L->next; while(p) { cout<<p->data<<" "; p=p->next; } cout<<endl; } int main() { node *list1,*list2; list1=new node; list1->next=NULL; list2=new node; list2->next=NULL; int n; cin>>n; Creat_List1(list1,n); Insert_List(list1,2,3); SeqList_Out(list1); Creat_List2(list2,n); Insert_List(list2,3,4); SeqList_Out(list2); }

你可能感兴趣的:(list,struct,XP,delete,ini,insert)