读书人

初学者提问 有关数据结构建立单链表

发布时间: 2012-03-06 20:47:55 作者: rapoo

菜鸟提问 有关数据结构建立单链表
我的意思是建立一个单链表,输入5个数字,然后打印,但是对链表的指针存在问题,谢谢......
#include <stdio.h>
#include <malloc.h>
typedef struct node{
int data;
struct node *next;
}num;

void main()
{
num *l,*p,*j;
int i;
l=(num *)malloc(sizeof(num));
l-> next=NULL;
j=l;
for(i=0;i <5;i++){
p=(num *)malloc(sizeof(num));
scanf( "%d ",p-> data);
j-> next=p;
p-> next=NULL;
j=j-> next;

}
l=l-> next;
for(i=0;i <5;i++)
printf( "%d ",l1-> data);
}

[解决办法]
#include <stdio.h>
#include <malloc.h>
#include <memory.h>
typedef struct node{
int data;
struct node *next;
}Num , *PNum;

int main(int argc, char* argv[])
{
PNum pHead , pCur , pTmp;
pHead = pCur = pTmp = NULL ;

// 建立链表
printf( "输入节点信息:\n " );
for( int i = 0 ; i < 5 ; i++ )
{
pTmp = (PNum)malloc(sizeof (Num)) ;

memset( pTmp , 0x00 , sizeof (Num) );

scanf( "%d ",&pTmp-> data);

if( pHead != NULL )
{
pCur-> next = pTmp ;
pCur = pTmp ;
}else
{
pHead = pCur = pTmp ;
}
}

// 打印链表
pTmp = pHead ;

printf( "\n输出节点信息:\n " );
while( pTmp )
{
printf( "%d\n " , pTmp-> data );

pTmp = pTmp-> next ;
}


while( pHead )
{
pTmp = pHead ;

printf( "\n释放内存节点 : %d\n " , pTmp-> data );

pHead = pHead-> next ;

free( pTmp );

pTmp = NULL ;
}

return 0;
}

读书人网 >软件架构设计

热点推荐