有关链表的建立问题
#include <stdio.h>
#include <stdlib.h>
typedef struct Node *PtrToNode;
typedef PtrToNode Position;
typedef PtrToNode List;
struct Node
{
int Element;
Position Next;
};
Position CreatList(List Head);
void PrintList(List Head);
void main()
{List Head;
Head=(Position)malloc(sizeof(Position));
Head-> Next=NULL;
CreatList(Head);
PrintList(Head);
}
Position CreatList(List Head)
{
int C;
Position P,Tmp;
P=Head;
while((C=getchar())!= '\n ')
{
Tmp=(Position)malloc(sizeof(Position));
P-> Element=C;
P-> Next=Tmp;
P=Tmp;
}
return Head;
}
void PrintList(List Head)
{
Position P;
P=Head;
printf( "the list is: ");
if(P!=NULL)
do
{
printf( "%d ",P-> Element);
P=P-> Next;
}while(P!=NULL);
}
在编译是没有错误 在运行是发生错误
[解决办法]
创建链表时,没有结束。
while((C=getchar())!= '\n ')
{
Tmp=(Position)malloc(sizeof(Position));
P-> Element=C;
P-> Next=Tmp;
P=Tmp;
P-> Next = NULL; //增加此处
}