#include <iostream>
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;
}
//按位序插入(带头结点)
bool ListInsert(LinkList &L,int i,int e){
if(i<1){
return false;//不合法
}
LNode *p=L;
int j=0;
for(j=0;j<i-1&&p!=NULL;j++){
p=p->next;
}
if(p==NULL){
return false;
}
LNode *s=(LNode *)malloc(sizeof(LNode));
s->data=e;
s->next=p->next;
p->next=s;
return true;
}
//指定结点的后插,在p结点后插入元素e
bool ListInsert2(LNode *p,int e){
if(p==NULL){
return false;
}
LNode *s=(LNode *)malloc(sizeof(LNode));
s->data=e;
s->next=p->next;
p->next=s;
return true;
}
//打印链表中的元素
void printList(LinkList L){
LNode *p=L->next;
while(p!=NULL){
cout<<p->data<<",";
p=p->next;
}
}
int main()
{
LinkList L;
InitList(L);
ListInsert(L,1,1);
ListInsert2(L->next,2);
printList(L);
return 0;
}
05-06
618
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
08-23
666
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
07-22
1343
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
08-02
919
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
08-24
06-02