链表简单分解

/*

链表的简单分解

*/

#include <stdio.h>

#include <windows.h>

#pragma warning(disable:4996)

//创建结构体

struct num

{

char name[10];//记录姓名

int age;//记录年龄

struct num *next;//如果是最后一个结构,它指向NULL.如果不是,它指向下一个结构的地址

};

int main(void)

{

int i;//循环变量

struct num *head = NULL;//指向第一个结构的地址

struct num ch[3];//结构指针

head = ch;//将head指向第一个结构的地址

//循环遍历输入信息

for (i = 0; i < 3; i++)

{

printf("请输入员工姓名:\n");

scanf("%s", &ch[i].name);

printf("请输入员工年龄:\n");

scanf("%d", &ch[i].age);

}

//循环遍历操作链表的节点

for (i = 0; i < 3; i++)

{

if (i == 2)//一共有三个节点,如果此时i==2代表是第三个节点(也就是最后一个节点),那么最后一个节点的(也就是最后一个结构).next就指向NULL

{

ch[i].next = NULL;

}

else//只要不是最后一个节点(也就是最后一个结构),那么.next就指向下一个节点的地址

{

ch[i].next = &ch[i + 1];

}

}

//ch[0].next = &ch[1];

//ch[1].next = &ch[2];

//ch[2].next = NULL;

//循环遍历打印信息

for (i = 0; i < 3; i++)

{

printf("%s\t%d\n", (head + i)->name, (head + i)->age);//使用head指向的地址来打印信息

}

system("pause");

return 0;

}

猜你喜欢

转载自blog.csdn.net/JOKERHB/article/details/80623654