2 u012798091 u012798091 于 2013.12.06 19:13 提问

数据结构链表创建出错

麻烦大家帮我看看哪里出错了,十分感谢啊

#include "stdio.h"
#include "malloc.h"
#include "stdlib.h"
#define NULL 0
#define OK 1

typedef int ElemType;
typedef int Status;

typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,LinkList;

Status InitLinkList(LinkList *L)
{
L=(LinkList *)malloc(sizeof(LNode));
return 0;
}

Status CreatLinkList(LinkList *L)
{
L=(LinkList *)malloc(sizeof(LNode));
L->next=NULL;
LinkList *p,*q;
p=L;
ElemType temp=0;
printf("请按递增的顺序输入数据,输入-1结束\n");
for(int i=0;;i++)
{ scanf("%d",temp);
if(temp == -1)break;
q=(LinkList *)malloc(sizeof(LNode));
q->data=temp;
q->next=NULL;
p->next=q;
p=q;
L->data++;
}
return OK;

}
Status PrintfLinkList(LinkList *L)
{
LinkList *p;
p=L->next;
while(p!=NULL)
{
printf("%d\t",p->data);
p=p->next;
}
printf("\n");
return 0;
}

void main()
{
LinkList *m;
m=(LinkList *)malloc(sizeof(LNode));
CreatLinkList(m);
PrintfLinkList(m);
}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
[数据结构]_[C/C++]_[链表的最佳创建方式]
场景1.链表在C/C++里使用非常频繁, 因为它非常使用, 可作为天然的可变数组. push到末尾时对前面的链表项不影响. 反观C数组和std::vector, 一个是静态大小, 一个是增加多了会对之前的元素进行复制改写(线程非常不安全).2.通常创建链表都是有next这样的成员变量指向下一个项, 通过定义一个head,last来进行链表创建. 参考函数 TestLinkCreateStupid()
数据结构例程——单链表的建立
本文是数据结构基础系列网络课程(2):线性表中第9课时线性表顺序存储的应用中所讲的例程。【例程】   定义单链表存储结构,用头插法和尾插法建立单链表,并显示建立好以后的结果。#include <stdio.h> #include <malloc.h> typedef int ElemType; typedef struct LNode //定义单链表结点类型 { ElemTy
数据结构单链表之创建链表(头插法)
数据结构的单链表的创建分为两种,分别为头插法和尾插法,本篇文章展示一种头插法的程序: 1.首先创建一个空链表结构体struct listnode { //链表成员的结构体,含有节点和指针,而链表的第一个成员称为头节点和头指针 int value; //节点 其中头节点的数据可以为空 listnode* next; //指向下一个链表成员的指针,所以也是listnode类型
数据结构之:链表详解
11
数据结构单链表之创建链表(尾插法)
接上一篇内容,这次使用尾插法来创建单链表: 1.同样创建链表成员结构体:struct listnode { int value; listnode* next; };2.然后下面就是通过尾插法创建单链表的程序,这里面稍稍要去理解的是通过一个指针来标记新的头节点的方法:listnode CreatlistTail(listnode* L, int a[], int len) {
数据结构学习二 数据结构之链表图解版【创建,遍历,删除,插入】
图解链表:● 建立动态链表 待插入的结点p1数据部分初始化,该结点被头结点head、尾结点p2同时指向 1.任务是开辟结点和输入数据 2.并建立前后相链的关系p1重复申请待插入结点空间,对该结点的数据部分赋值(或输入值) P2->next 指向p1新开辟的结点。P2指向新结点p2=p1 ● 遍历链表1.单向链表总是从头结点开始的; 2.每访问一个结点,就将当前指针向该结点的下一个
golang实现链表数据结构
package main import &quot;fmt&quot; //链表结点 type Node struct{ data interface{} next *Node } //链表 type LinkList struct{ head *Node tail *Node size int } //新建空链表,即创建Node指针head,用来指向链表第一个结点,初...
数据结构学习:利用链表建立二叉树
利用链表保存二叉树
数据结构——单链表的创建、删除、遍历以及节点的插入、删除等操作
1、创建一个结构体:创建一个包含自身结构的结构体,该结构体包含一个数据域和指针域 1、链表初始化:在链表的初始化过程中要为一个结点用malloc函数分配一个空间,并且时next指针指向一个NULL,然后返回链表(注意判断空间时候申请成功) 3、初始化创建链表:创建链表要分为头插法和尾插法,该部分要注意用malloc申请的空间是在堆里面,而用int等定义的申请的空间是在栈里面。 3
c语言实现数据结构中的链表源代码
#include #include typedef struct LNode *List; struct LNode { int data; List next; }; struct LNode L; List InitList(List PtrL) { PtrL = (List) malloc(sizeof(L)); PtrL->next = NULL; return PtrL