#include <stdio.h>
#include <stdlib.h>
typedef struct node
{
char data; //data 为节点的数据信息
struct node *next; //next 为指向后继节点的指针
}LNode; //单链表节点类型
void CreateLinkList(LNode **head) //在表头生成单链表
{
//将主调函数中指向待生成单链表的指针地址(如&p)传给**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->next = (*head)->next; //将头节点的next值给新节点*p的next
(*head)->next = p; //头节点的next指针指向新节点*p,实现在表头擦汗人
scanf("%c", &x); //继续生成下一节点
}
}
int main()
{
LNode *h, *p;
CreateLinkList(&h); //在表头生成单链表
p = h->next; //输出单链表
while (p != NULL)
{
printf("%c", p->data);
p = p->next;
}
printf("\n");
return 0;
}
10.2在表头插入生成单链表
最新推荐文章于 2024-11-13 09:46:28 发布