C语言的链表的一个问题
typedef struct
{
int data;
struct Node *next;
}Node;
typedef Node * LinkList;
LinkList creatLinkList_2()
{
LinkList pRear,pHead,pCur;
int num;
printf("creating pHead...\n");
if( ( pHead = (LinkList)malloc(sizeof(Node)) ) == NULL)
{
printf("failed to allocate memery for pHead");
}
else
{
printf("successfully create pHead!\n");
}
pHead->next = NULL;
pRear = pHead;
while(1)
{
printf("input the number of linklist you want to create:");
printf("(-1 as end )\n");
scanf("%d\n",&num);
if(num == -1)
{
printf("finish creating linklist!");
break;
}
pCur = (LinkList)malloc(sizeof(Node));
pCur->data = num;
pRear->next = pCur;
pRear = pCur;
printf("%n");
}
pRear->next = NULL;
return pHead;
}
void printLinkList(LinkList pHead)
{
LinkList p = pHead;
while(p->next)
{
p = p->next;
printf("your linklist is:%d\n", p->data);
}
}
int main()
{
/* LinkList *L = (LinkList *)malloc(sizeof(LinkList));
create_LinkList(&L,5);
LinkList p = *L;
show_LinkList(p,5);
free(L);*/
LinkList pMyList = creatLinkList_2();
// printf("hehe");
printLinkList(pMyList);
return 0;
}
程序基本没大问题,主要是当输入提示出现后,必须输入2次数字才能进入循环,这是为何,同样,输入2次-1才能退出循环,大家去机子上跑一下如果方便的话,帮我修复一下,我用的是LINUX
printf("请输入数字");
scanf("%d",&num);
while(1)
{
//创建链表
if(num == -1)
退出循环
}
...全文
相关推荐
迷宫问题c语言课设本设计程序实现一个以链表作存储结构的栈类型,再用非递归法走出迷宫的路径。
通过利用c语言的设计一个关于迷宫的问题,本设计程序实现一个以链表作存储结构的栈类型,再用非递归法走出迷宫的路径。
C语言链表综合练习题
链表练习,可以帮助大家提高C语言链表处练习
数据结构C语言版链表的集合运算
数据结构C语言版链表的集合运算,包含交集、并集、差集。
约瑟夫环单循环链表C语言实现
数据结构问题,编程实现约瑟夫环,原题是严淑敏的《数据结构C语言版题集》实习一的第二题
关于c语言链表的学习总结
我这些天在学习数据结构,发现了一些问题。闲话少叙,先上代码(参考教材:数据结构-c语言,耿国华编著,有删改)。


