首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一个链表的创建有关问题,不带头节点从头插入

2012-08-03 
一个链表的创建问题,不带头节点从头插入#include stdio.h#include malloc.htypedef struct node{int d

一个链表的创建问题,不带头节点从头插入
#include <stdio.h>
#include <malloc.h> 
typedef struct node{
int date;
struct node *next;
}NODE;

NODE *creat_list();
void insert_list(NODE *head,int pos,int val);
void delete_list(NODE *head,int pos);
void display_list(NODE *head); 

int main(int argc, char *argv[])
{
NODE *head;
int pos, val;

head=creat_list();
//insert_list(head,pos,val);
display_list(head); 
//delete_list(head,pos);
return 0;
}

NODE *creat_list()
{
NODE *head=NULL,*p,*ph;
int len; 
int i; 
int date; 

printf("请输入数据的长度:"); 
scanf("%d",&len);

for(i=0;i<len;i++)
{
p=(NODE *)malloc(sizeof(NODE)); 

printf("请输入数据:");
scanf("%d",&date); 
p->date=date;

if(NULL == head)

head=p;
p->next=NULL;

else 
{
ph->next=p;
head=ph; 
}
ph=p; 
}
return head; 
}

void display_list(NODE *head)
{
NODE *p=head;

while(NULL!=p)
{
printf("%d\n",p->date);
p=p->next; 

}

[解决办法]
#include <stdio.h>
#include <malloc.h>
typedef struct node{
int date;
struct node *next;
}NODE;

NODE *creat_list();
void insert_list(NODE *head,int pos,int val);
void delete_list(NODE *head,int pos);
void display_list(NODE *head);

int main(int argc, char *argv[])
{
NODE *head;
//int pos, val;

head=creat_list();
//insert_list(head,pos,val);
display_list(head);
//delete_list(head,pos);
return 0;
}

NODE *creat_list()
{
NODE *head=NULL,*p;
int len;
int i;
int date;

printf("请输入数据的长度:");
scanf("%d",&len);

for(i=0;i<len;i++)
{
p=(NODE *)malloc(sizeof(NODE));

printf("请输入数据:");
scanf("%d",&date);
p->date=date;

if(NULL == head)
{
head=p;
p->next=NULL;
}
else
{
p->next=head->next;
head->next=p;
}

  
}
return head;
}

void display_list(NODE *head)
{
NODE *p=head;

while(NULL!=p)
{
printf("%d\n",p->date);
p=p->next;
}


能输出,但乱序,我就不知道什么原因了
[解决办法]

探讨
#include <stdio.h>
#include <malloc.h>
typedef struct node{
int date;
struct node *next;
}NODE;

NODE *creat_list();
void insert_list(NODE *head,int pos,int val);
void delete_list(NODE *hea……

热点排行
Bad Request.