c语言:建立单链表,随机输入10个数,插入链表中,输入查找关键字,输出在该链表中的查找结果。谢谢!!!

2024年11月23日 03:45
有2个网友回答
网友(1):

其实就是实现查找啊!

网友(2):

/****************************
包括头文件
*****************************/
#include
#include
/*****************************
函数声明
*****************************/
void createlist(void);
void findNumber(void);
/****************************
宏定义,用于输入数字的个数
****************************/
#define NUMBER 10
/****************************
结构体定义
****************************/
struct Number
{
int number;
struct Number *pNum;
};

typedef struct Number struNumber;//重定义
struNumber *head; //链表头指针定义
/**********************************
主函数
*********************************/
int main(void)
{
createlist();
findNumber();
return 0;
}
/****************************************
createlist 链表创建的实现
****************************************/
void createlist(void)
{
struNumber *p1 = NULL,*p2 = NULL;
p1 = p2 = (struNumber *)malloc(sizeof(struNumber));//为头指针开辟空间

int inputData = 0;
for (int i =0;i<10;i++)
{

if (0 == i)
{
printf("请输入整数字: ");
scanf("%d",&p1->number);
head = p1;
p1->pNum = NULL;
}
else
{
p2 = (struNumber *)malloc(sizeof(struNumber));
printf("请输入整数数字:");
scanf("%d",&inputData);
p2->number = inputData;
p2->pNum = NULL;
p1->pNum = p2;
p1 = p2;

}

}
}
/****************************************
findNumber 链表查找的实现
****************************************/
void findNumber(void)
{
int findData = 0;
printf("请输入需要查找的数字:");
scanf("%d",&findData);
struNumber *pFind = NULL;
pFind = head->pNum;
while(pFind != NULL)
{
if (pFind->number == findData)
{
printf("你所要查找的数字为:%d",pFind->number);
return ;
}
pFind = pFind->pNum;

}
if (pFind == NULL)
{
printf("没有你所要查找的数字!\n");
}

}