还是一个练习的总结
写一个程序用单链表来实现存放一个数组。其中包括单链表节点的定义、用户输入节点的内容、使用头插法输入
数据、显示已经输入的数据等几个功能。代码如下:
#include<stdio.h>
#include<stdlib.h>
//定义单链表节点的结构,它是由一个整形数字和一个指针构成
struct NumArray
{
int num;
struct NumArray* next;
};
//getInput函数是用来让用户输入节点的内容的
void getInput(struct NumArray* p_input)
{
printf("please type in the number\n");
scanf("%d", &p_input->num);
fflush(stdin);
printf("\n");
}
//AddMember函数是使用头插法在链表中插入节点,注意这里要使用两层解引用来修改头指针的值
struct NumArray AddMember(struct NumArray** first)
{
struct NumArray* newMember;
newMember = (struct NumArray*)malloc(sizeof(struct NumArray));
if(newMember == NULL)
{
printf("Failure\n");
exit(1);
}
getInput(newMember);
newMember->next = *first;
*first = newMember;
}
//show函数用来输出所有已经输入进去的值,注意这个for的写法很传神。
struct NumArray show(struct NumArray* first)
{
struct NumArray* Tp;
for(Tp = first; Tp!&