数据结构单链表表头插入生成单链表
//表头插入生成单链表
#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
char data; //data为节点的数据信息
struct node* next; //next为指向后继节点的指针
}LNode; //单链表节点类型
void CreateLinkList(LNode** head) //表头生成单链表
{
char x;
LNode* p;
*head = (LNode*)malloc(sizeof(LNode)); //在主调函数空间生成链表头节点
(*head)->next = NULL; //*head为链表头指针
printf("Input any char string : \n");
scanf("%c", &x); //节点的数据域为char型,读入节点数据
while (x != '\n') //生成链表的其他节点
{
p = (LNode*)malloc(sizeof(LNode)); //申请一个节点空间
p->data = x; //将读入的数据赋给待插入节点*p
p->next = (*head)->next = p; //头节点的next值付给*p的next,保证不断链
(*head)->next = p; //头节点的next指针指向待插入节点*平时先表头插入
scanf("%c", &x); //继续生成下一新节点
}
}
void main()
{
LNode* h, * p;
CreateLinkList(&h);
p = h -> next;
while (p != NULL)
{
printf("%c,",p->data);
p = p->next;
}
printf("\n");
}