今天我分享的是以尾插法建立单链表,至少插入5个不同的数据,完成输入与输出。
单链表是一种常见的数据结构,它由一系列节点组成,每个节点包含两部分:数据域和指针域。数据域用于存储节点的数据信息,指针域则存储下一个节点的地址(或称为链接)。通过这种指针的链接,各个节点依次连接起来形成链表。单链表的头节点用于标识链表的起始位置,尾节点的指针域通常为 NULL ,表示链表的结束。
尾插法是一种在链表中添加节点的方法。在链表中,每个节点包含数据部分和指向下一个节点的指针。尾插法就是每次将新节点添加到链表的末尾。
下面就是尾插法建立单链表的源代码以及运行结果。
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
typedef int DataType;
typedef struct linknode
{
DataType data;
struct linknode *next;
} LinkList;
LinkList *InitList();
void CreateListL(LinkList *head,int n);
void DispList(LinkList *head);
int main()
{
LinkList *head;
head=InitList();
CreateListL(head,5);
DispList(head);
return 0;
}
LinkList *InitList()
{
LinkList *head;
head=(LinkList*)malloc(sizeof(LinkList));
head->next=NULL;
return head;
}
void CreateListL(LinkList *head,int n)
{
LinkList *s,*last;
int i;
last=head;
printf("请输入%d个整数:",n);
for(i=0;i<n;i++)
{ s=(LinkList *) malloc(sizeof(LinkList));
scanf("%d",&s->data);
s->next=NULL;
last->next=s;
last=s;
}
printf("建立链表操作成功!");
}
void DispList(LinkList *head)
{
LinkList *p;
p=head->next;
while(p!=NULL)
{
printf("%5d",p->data);
p=p->next;
}
}