指针是链表的基础,链表是一个C语言的重难点,是学习操作系统还有数据结构算法的基础。
大师兄简单做一个链表的整表创建程序,俩种方法,头插法还有尾插法。
基础的同学可以仔细品味一下,
#include <iostream>
typedef struct node
{
int data;
struct node* next;
}node;
typedef struct node* linklist;
void CreatHeadInsetList(linklist* L, int n);
void CreatEndInsetList(linklist* L, int n);
int main()
{
printf("hello world\n");
linklist test;
CreatEndInsetList(&test,5);
for (int i=0;i<5;i++)
{
test = test->next;
printf("%d ",test->data);
}
}
//头插法
void CreatHeadInsetList(linklist *L,int n)
{
linklist p;
int i;
*L = (linklist)malloc(sizeof(node));
(*L)->next = NULL;
for (i = 0; i < n; i++)
{
p = (linklist)malloc(sizeof(node));
p->data = i+1;
p->next = (*L)->next;
(*L)->next = p;
}
}
//尾插法
void CreatEndInsetList(linklist* L, int n)
{
linklist p, p1;
int i;
*L = (linklist)malloc(sizeof(node));
p = (*L);
p->next = NULL;
for (i = 0; i < n; i++)
{
p1 = (linklist)malloc(sizeof(node));
p1->data = i + 1;
p->next = p1;
p = p1;
}
p->next = NULL;
}
这部分是单向链表,这部分一定要多看多练,才是王道,适当自己画图,去调试,,冲冲冲。。。
这是大师匈用VS2019做的哦,所以头文件那里可能不一样,正常要加入俩个头文件,分别是stdio.h还有stdlib.h。