#include<iostream>
#include<stdlib.h>
using namespace std;
typedef struct lnode{
int data;
struct lnode *next;
}lnode,*linklist;
bool initlist(linklist &L)
{
L=(lnode*)malloc(sizeof(lnode));
if(L==NULL)
return false;
L->next=NULL;
return true;
}
linklist headinsert(linklist &L)
{
lnode *s;
int x;
cin>>x;
while(x!=99999)
{
s=(lnode*)malloc(sizeof(lnode));
s->data=x;
s->next=L->next;
L->next=s;
cin>>x;
}
return L->next;
}
bool listinsert(linklist &L,int i,int e)
{
if(i<1)
return false;
lnode *p;
int j=0;
p=L;
while(p!=NULL&&j<i-1)
{
p=p->next;
j++;
}
if(p==NULL)
return false;
lnode *s=(lnode*)malloc(sizeof(lnode));
s->data=e;
s->next=p->next;
p->next=s;
return true;
}
int main()
{
linklist L;
initlist(L);
linklist h=headinsert(L);
listinsert(L,3,5);
while(h!=NULL)
{
cout<<h->data<<" ";
h=h->next;
}
return 0;
}
带头结点单链表按位序插入
最新推荐文章于 2024-04-30 23:32:15 发布