单链表的C语言实现

来源:百度知道 编辑:UC知道 时间:2024/06/09 02:35:24
很郁闷,在VC 6下调试c程序,错误一大堆,请高手看一下,哪里存在问题。万分感谢!使用头插法,即严蔚敏书本P30下面的方法。

/*使用头插法生成带头结点的单链表,并输出 */
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
typedef struct lnode
{ int data;
struct lnode *next;
}lnode,*linklist; /*结点定义*/

void main()
{
void creatlist(linklist &lnode,int y); /*函数声明*/
int n,i;
lnode *l,*p;
l=(linklist)malloc(sizeof(lnode)); /*生成头结点*/
if(l==NULL) /*错误检测*/
{
printf("can't get space!");
break;
}
p=l; /*p和l都指示头结点*/
l->next=NULL;
printf("input n=\n");
scanf("%d",&n); /*n为结点个数*/
creatlist(l,n ); /*生成单链表*/
for(p=p->next;(p->next)!=null;p=p->next) /*将链表输出,目的是检验链表是否已经生成*/
{
printf("%d ",p->data);
}
}

void creatlist(linklist &lnode,int y) /*子函数*/
{
linklist s;
int i;
for(i=0;i<n

在 void creatlist(linklist &lnode,int y) 子函数中加入
linklist l;
int n=10;/*n大小随意*/
l=(linklist)malloc(sizeof(lnode));
三行
还有main函数里的
break;
改为
exit(0);
null必须是大写的NULL

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
typedef struct lnode
{ int data;
struct lnode *next;
}lnode,*linklist; /*结点定义*/

void main()
{
void creatlist(linklist &lnode,int y); /*函数声明*/
int n,i;
lnode *l,*p;
l=(linklist)malloc(sizeof(lnode)); /*生成头结点*/
if(l==NULL) /*错误检测*/
{
printf("can't get space!");
return; //1
}
p=l; /*p和l都指示头结点*/
l->next=NULL;
printf("input n=\n");
scanf("%d",&n); /*n为结点个数*/
creatlist(l,n ); /*生成单链表*/
for(p=p->next;p!=NULL;p=p->next) /*将链表输出,目的是检验链表是否已经生成*/ //修改
{
printf("%d ",p->data);<