1 题目
功能:头插入法建立单链表描述:输入链表中各个结点中的值,然后利用头插入法整合成单循环链表进行输出
2 思路
头插法的基本思路是: a. 首先创将一个空的单链表 b. 生成新的结点插入到头部,然后一直循环直到所有的元素结点都插入到链表中最后,由于是循环向头部插入,那么导致的一个现象就是,从头部开始遍历的时候,一定与形成时元素结点相反
3 代码
#include <stdio.h>
#include <stdlib.h>
/**
功能:头插入法建立单链表
描述:输入链表中各个结点中的值,然后利用头插入法整合成单循环链表进行输出
**/
typedefstructNode{
charnum;
structNode*next;
}LNode,*LinkList;
LinkListcreate(void) {
LinkListhead;
LNode*p1;
chara;
head=NULL;
printf("请输入链表元素(字符采集,不需要分隔符):\n");
a=getchar();
while(a!='\n') {
p1=(LinkList)malloc(sizeof(LNode)); // 分配空间
p1->num=a; // 数据域赋值
p1->next=head;
head=p1;
a=getchar();
}
returnhead; // 返回头结点
}
intmain(intargc,charconst*argv[]) {
LinkListL1;
L1=create();
printf("这个链表是:\n");
while(L1) {
printf("%c ",L1->num);
L1=L1->next;
}
printf("\n");
}
示例结果:
$ gccex070.c-odemo
$ ./demo
请输入链表元素(字符采集,不需要分隔符):
apple
这个链表是:
e l p p a