实现添加元素和打印所有元素
其他操作后续补充
#include <stdio.h>
typedef struct Link
{
int data;
struct Link *next;
}link;
link* Greate(link* head);//添加元素
void outall(link* head);//显示所有元素
link* Greate(link *head)
{
link *p = NULL;//定义头指针
link *pr = head;
p = (link*)malloc(sizeof(link));//给p指针分配内存
if (p==NULL)//判断内存分配是否成功
{
return 0;
}
if (head==NULL)//如果原链表为空
{
head = p;//把新节点作为头节点
}
else
{
while (pr->next!=NULL)若未到表尾,则移动pr直到pr指向表尾
{
pr = pr->next;//让pr指向下一个节点
}
pr->next = p;//然后最后的节点指向新的
}
int num;
printf("put data\n");
scanf_s("%d", &num);
p->data = num;
p->next = NULL;
return head;
}
void outall(link* head)
{
link* p = head;
while (p != NULL) //若不是表尾,则循环打印节点的数值
{
printf("%20d\n", p->data);//打印所有节点数据
p = p->next; //让p指向下一个节点
}
}
int main()
{
link* p=NULL;
for (int i = 0; i < 5; i++)
{
p = Greate(p);
}
printf("");
outall(p);
system("pause");
return 0;
}