才开始学习数据结构,链表的创建那一章,感觉书上和网上的代码都是没有具体数据的,想自己写一个能有具体数据的,不然也不知道那些函数是对是错哇,可以用头插法把数据填到链表里么,具体怎么搞哇,好难啊啊啊啊
供参考:
#include <stdio.h>
#include <malloc.h>
typedef int EmelType;
typedef struct LNode {
EmelType data;
struct LNode* next;
}LNode, * LinkList;
int InitList_L(LinkList* L);
void CreatList(LinkList* L, EmelType n);
void PrintList(LinkList L);
int main()
{
LinkList L1, L2;
EmelType i = 0, n1 = 0, n2 = 0;
InitList_L(&L1);
InitList_L(&L2);
printf("L1中的结点个数\n");
scanf("%d", &n1);
CreatList(&L1, n1);
printf("L2中的结点个数\n");
scanf("%d", &n2);
CreatList(&L2, n2);
PrintList(L1);
PrintList(L2);
return 0;
}
//初始化
int InitList_L(LinkList* L)
{
(*L) = (LinkList)malloc(sizeof(LNode));
(*L)->next = NULL;
return 1;
}
//头插法建立单链表
void CreatList(LinkList* L, EmelType n)
{
int i;
LNode * p;
printf("请输入%d个结点的值:", n);
for (i = n; i > 0; --i) {
p = (LNode*)malloc(sizeof(LNode));
p->next = NULL;
scanf("%d", &p->data);
p->next = (*L)->next;//插入到表头
(*L)->next = p;
}
}
void PrintList(LinkList L)
{
LinkList p = L->next;
while (p)
{
printf("%d ", p->data);
p = p->next;
}
printf("\n");
}