关于链表的一个小问题
#include<stdio.h>
#include<malloc.h>
typedef struct
{
int num;
char name[20];
} elemtype;
typedef struct LNode
{
elemtype data;
struct LNode *next;
} node;
int main()
{
int i=0;
node *head,*p,*q;
head=NULL;
q=p=(node *)malloc(sizeof(node));
while( (p->data).num !=0)
{
if(p!=NULL)
{
printf("Please input :\n");
scanf("%d, %s",((p->data).num),((p->data).name));
if(0==i)
{
head=p;
i++;
}
else
q->next=p;
q=p;
}
// q=p;
p=(node *)malloc(sizeof(node));
}
printf("%d\n",sizeof(elemtype));
system("pause");
return 0;
}
程序不能正常运行,应该是标红的地方有问题,可我看不出来,哪位能说说
#include<malloc.h>
typedef struct
{
int num;
char name[20];
} elemtype;
typedef struct LNode
{
elemtype data;
struct LNode *next;
} node;
int main()
{
int i=0;
node *head,*p,*q;
head=NULL;
q=p=(node *)malloc(sizeof(node));
while( (p->data).num !=0)
{
if(p!=NULL)
{
printf("Please input :\n");
scanf("%d, %s",((p->data).num),((p->data).name));
if(0==i)
{
head=p;
i++;
}
else
q->next=p;
q=p;
}
// q=p;
p=(node *)malloc(sizeof(node));
}
printf("%d\n",sizeof(elemtype));
system("pause");
return 0;
}
程序不能正常运行,应该是标红的地方有问题,可我看不出来,哪位能说说
...全文
相关推荐
一个自己用java写的学生单链表的相关问题
在Java中,我们通常定义一个表示链表节点的类,如`Node`,它有两个属性:`data`用于存储学生信息,`next`用于指向下一个节点。
合并两个有序链表是一个常见的编程问题.txt
合并两个有序链表是一个经典的编程问题,涉及到了数据结构和算法的运用。这个问题的目标是将两个已排序的链表(每个节点包含一个整数值)合并成一个新的有序链表。在这个任务中,我们通常假定链表的节点值是升序排列
c++笔试题汇总 ①链表反转 单向链表的反转是一个经常被问到的一个面试题,也是一个非常基础的问题。比如一个链表是这样的: 1->2->3->4->5 通过反转后成为5->4->3->2->1。 最容易想到的方法遍历一遍链表,利用一个辅助指针,存储遍历过程中当前指针指向的下一个元素,然后将当前节点元素的指针反转后,利用已经存储的指针往后面继续遍历。源代码如下:
在遍历链表的过程中,每次都将cur的next指针指向前一个节点pre,然后更新pre和cur的值。当遍历结束时,将head指针指向pre,以完成链表的反转。
迷宫问题c语言课设本设计程序实现一个以链表作存储结构的栈类型,再用非递归法走出迷宫的路径。
总的来说,这个C语言课程设计旨在通过实现链表栈和非递归路径探索算法,提供一个解决迷宫问题的完整方案。这不仅锻炼了对数据结构的理解,也强化了对算法应用的能力。
C/C++经典约瑟夫环问题——带头结点的单向循环链表
在计算机科学领域,约瑟夫环(Josephus Problem)是一个著名的理论问题,它涉及到了循环链表和数据结构的操作。本程序以C/C++语言实现,利用带头结点的单向循环链表来解决这个问题。


