首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

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

2012-03-06 
菜鸟提问 有关数据结构建立单链表我的意思是建立一个单链表,输入5个数字,然后打印,但是对链表的指针存在问

菜鸟提问 有关数据结构建立单链表
我的意思是建立一个单链表,输入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;
}

热点排行