#include<stdio.h>
#include <stdlib.h>
#include <malloc.h>
typedef int ElemType; // 把后面的int都用ElemType代替,这样,要是要把后面的int改为double,直接改为typedef double ElemType就可以了
typedef struct node //定义一个结点类型为struct node
{
ElemType data;
struct node *next;
}Node,*LinkList; // Node是别名,可以像用struct node一样去用。*LinkList是结构指针类型
void InitList(LinkList *L) // 初始化单链表
{
*L = (LinkList)malloc(sizeof(Node)); // 申请结点空间,建立头结点
(*L)->next = NULL; //建立空的单链表L
}
/* L是指向单链表的头结点的指针,用来接收主程序中待初始化单链表的头指针变量的地址,
*L相当于主程序中待初始化单链表的头指针变量。*/
void CreateFromHead(LinkList L)
/* L是带头结点的空链表头指针,通过键盘输入表中元素值,利用头插法建单链表L*/
{
Node *s;
char c;
int flag = 1;
while (flag) // flag初值为1,当输入“$”时,置flag为0,建表结束
{
c = getchar();
if (c != '$')
{
s = (Node*)malloc(sizeof(Node)); //建立新结点
s->data = c;
s->next = L->next; //将s结点插入表头
L->next = s;
}
else flag = 0;
}
}
void Print(LinkList v)
{
LinkList q;
q = v->next;
while (q != NULL)
{
printf("%c", q->data);
q = q->next;
}
printf("\n");
}
int main()
{
LinkList L;
Node *node;
InitList(&L);
CreateFromHead(L);
Print(L);
return 0;
}
数据结构:头插法建立单链表
最新推荐文章于 2024-07-21 02:56:43 发布