#include<stdio.h>
#include<malloc.h>
typedef struct Node
{
int data;
struct Node *next;
}Node,*Linklist;
Node *creat_List_a()//尾插法建立单链表
{
Linklist L;
Node *p;
int temp;
L=(Linklist)malloc(sizeof(Node));
L->next=NULL;
scanf("%d",&temp);
while(temp!=-1)
{
p=(Linklist)malloc(sizeof(Node));
p->data=temp;
p->next=L->next;
L->next=p;
scanf("%d",&temp);
}
return L;
}
Node * creat_List_b() //头插法建立单链表
{
Linklist L;
int temp;
Node *p;
Node *r;
L=(Linklist)malloc(sizeof(Node));
L->next=NULL;
r=L;
scanf("%d",&temp);
while(temp!=-1)
{
p=(Linklist)malloc(sizeof(Node));
p->data=temp;
r->next=p;
r=p;
scanf("%d",&temp);
}
r->next=NULL;
return L;
}
int main()
{
Linklist head;
int i;
printf("请输入一个整数,选择创建链表方式:");
scanf("%d",&i);
if(i==1)
{
head=creat_List_a();
}
else
{
head=creat_List_b();
}
Node *p;
p=head->next;
while(p!=NULL)
{
printf("%2d",p->data);
p=p->next;
}
return 0;
}
c语言实现单链表创建和遍历
最新推荐文章于 2023-07-20 21:24:01 发布