#include<bits/stdc++.h>
using namespace std;
struct LNode{
int data;
LNode *next;
};
//头插法建立带头结点的单链表
void ListHeadInsert(LNode * &L){
int value;
LNode *p;
L=(LNode *)malloc(sizeof(LNode));
L->next=NULL;
cin>>value;
while(value!=999){
p=(LNode *)malloc(sizeof(LNode));
p->data=value;
p->next=L->next;
L->next=p;
cin>>value;
}
}
//遍历带头结点的单链表
void ListShow(LNode *L){
LNode *T=L->next;
while(T!=NULL){
cout<<T->data<<" ";
T=T->next;
}
cout<<endl;
}
//头插法建立没有头节点的单链表
void ListHeadInsert2(LNode * &L){
int value,flag=1;
LNode *p;
cin>>value;
while(value!=999){
if(flag){
L=(LNode *)malloc(sizeof(LNode));
L->data=value;
L->next=NULL;
flag=0;
}else{
p=(LNode *)malloc(sizeof(LNode));
p->data=value;
p->next=L;
L=p;
}
cin>>value;
}
}
//遍历没有头节点的链表
void ListShow2(LNode *L){
LNode *T=L;
while(T!=NULL){
cout<<T->data<<" ";
T=T->next;
}
cout<<endl;
}
int main(){
LNode *L,*nL;
ListHeadInsert(L); //头插法建立带头节点的单链表
ListShow(L); //遍历带头节点的单链表
ListHeadInsert2(nL); //头插法建立没有头节点的单链表
ListShow2(nL); //遍历没有头节点的单链表
return 0;
}
头插法建立单链表
最新推荐文章于 2024-08-10 20:22:56 发布