#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#define OK 1
#define OVERFLOW -2
typedef int Status;
typedef int ElemType;
int i,n;
typedef struct LNode
{
ElemType data;
struct LNode next;
}LNode,LinkList;
Status InitList(LinkList &L)
{
L=(LNode)malloc(sizeof(LNode));
L->next=NULL;
return OK;
}
void CreateList_H(LinkList &L,int n,int i)
{
for(i=0;i<n;++i)
{
LinkList*p;
p=(LNode*)malloc(sizeof(LNode));
scanf("%d",&p->data);
p-next=L-next;
L-next=p;
}
}
int main()
{
LinkListq;
q=(LNode*)malloc(sizeof(LNode));
q=head->next;
while(q!=NULL)
{
printf("%d",q->data);
q=q-next;
}
return 0;
}
修改处见注释,供参考:
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#define OK 1
#define OVERFLOW -2
typedef int Status;
typedef int ElemType;
//int i, n; //修改
typedef struct LNode
{
ElemType data;
struct LNode* next; //修改
}LNode,* LinkList; //修改
Status InitList(LinkList& L)
{
L = (LinkList)malloc(sizeof(LNode)); //修改
//L = (LNode)malloc(sizeof(LNode));
L->next = NULL;
return OK;
}
void CreateList_H(LinkList L, int n) //修改
//void CreateList_H(LinkList& L, int n, int i)
{
int i;
for (i = 0; i < n; ++i)
{
LinkList p; //LinkList* p; //修改
p = (LNode*)malloc(sizeof(LNode));
scanf("%d", &p->data);
p->next = L->next;
//p - next = L - next; //修改
L->next = p;
//L - next = p; //修改
}
}
int main()
{
int n;
LinkList q, L = NULL;
InitList(L); //修改
printf("请输入结点个数:"); //修改
scanf("%d", &n); //修改
printf("请输入%d个结点值:", n);//修改
CreateList_H(L, n); //修改
//q = (LNode*)malloc(sizeof(LNode));//修改
//q = head->next; //修改
q = L->next;
while (q != NULL)
{
printf("%d ", q->data);
q = q->next;
//q = q - next; //修改
}
return 0;
}
你这段代码问题太大了,最主要就是没有用指针,还有语法问题,比如结构体里面的next属性和类型之间没有空格
把指针、结构体、地址这几个知识点搞懂,后面就顺理成章,能找到问题!