2 qq 34378013 qq_34378013 于 2016.03.22 18:48 提问

C语言建立单链表的问题
 #include<stdio.h>
#include<stdlib.h>

struct node
{
    int num;
    int L;
    struct node *next;
};
typedef struct node LN;

typedef struct
{
    int num1[100];
    int L1;
}S;


void Creat1(S &p);
void Creat(LN *p);

void main()
{
    S p;
    LN *h;
    p.L1=0;
    int n;
    Creat(h);
    Creat1(p);
}


void Creat1(S &p)
{
    int a;
    printf("Input total number of list:");
    scanf("%d",&a);
    printf("\n");
    system("CLS");
    for(int i=0;i<a;i++)
    {
        printf("Input the %d one:",i+1);
        scanf("%d",&p.num1[i]);
        p.L1++;
    }
    system("CLS");
}


void Creat(LN *h)
{
    int a;
    LN *p;
    LN *b;
    printf("Input the number of the linklist:");
    scanf("%d",&a);
    h=(LN *)malloc(sizeof(LN));
    h->next=NULL;
    b=h;
    for(int i=0;i<a;i++)
    {
        printf("Input the %d number ",i+1);
        p=(LN *)malloc(sizeof(LN));
        scanf("%d",p->num);
        b->next=p;
        b=p;
        p->L++;
    }
    system("CLS");
    p->next=NULL;
}

在Creat函数中创建了一个单链表,那么我要怎么返回主函数,因为我是void一个Creat的函数,急求,谢谢各位大神了。

2个回答

cxsmarkchan
cxsmarkchan   2016.03.22 22:54

把Creat函数定义和声明中的LN *h改成LN* &h(注意定义和声明都要改)。

qq_34378013
qq_34378013 太感谢了
2 年多之前 回复
mengruohen
mengruohen   2016.03.22 20:05

c风格的话,参数得传二级指针,一级指针的话,是不行的。c++风格的话,可以传引用。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
单链表的建立 C语言实现
#include #include #include struct LNode { int data; struct LNode *next; }; //创建链表,count为创建的链表的节点数目 struct LNode *create(int count) { int i; struct LNode *pNode = NULL; struct LNode *pNewNode
尾插法建立单向链表 C语言实现
代码实现#include<stdlib.h> #include<stdio.h>//定义linklist结构体类型 typedef struct linklist { int data; struct linklist *next; }list,*plist;//建立一个结构体list及linklist结构体类型指针//尾插法建链表 void tail_insert(plist *h
c语言创建单链表
#include #include //数据结构定义 typedef struct LNode { int data; LNode * next; }LNode,*LinkList; //头插法 void create(LinkList &L,int a[],int n) { int i = 0; LinkList s; L = (LinkList)mall
单链表的建立(C语言):头插法和尾插法建立单链表
采用头插法建立单链表 该方法从一个空表开始,生成新结点,并将读取到的数据存放到新结点的数据域中,然后将新结点插入到当前链表的表头,即头结点之后,如图2-4所示。 图2-4  头插法建立单链表 头插法建立单链表的算法如下: LinkList CreatList1(LinkList &L){ //从表尾到表头逆向建立单链表L,每次均在头结点之后插入元素 L
C语言实现单链表的创建、插入、删除
节点数据结构: /* *定义链式存储线性表的结构 */ typedef struct LNode { int data; //数据域 struct LNode * next; //指向下一个节点的指针 } LNode,*LinkList;从尾部添加节点: /* *fun:CreateList_L() *desc:逆位序输入n个元素的值,建立带表头结点的单链线
头插法建立单向链表 C语言实现
!!!!! 代码有bug,请注意。。 实现代码 #include&amp;lt;stdio.h&amp;gt; #include&amp;lt;stdlib.h&amp;gt; //定义linklist结构体类型 typedef struct linklist { int data; struct linklist *next; }list, *plist;//建立一个结构体list及linklist结构体...
C语言实现单链表创建和遍历
创建单链表有多种方式,我这里介绍从尾部添加新节点的创建方式。 创建的过程: 1.定义节点的数据结构 c语言中链表节点是用结构体来实现,创建之前要明白数据域需要什么类型的数据。例如: //定义链表中的节点 typedef struct node{ int data; //链表中的数据 struct node * p_next;//指向下一节点的指针
用单链表解决约瑟夫问题 C语言实现
<br /><br /><br />编号为1,2,3,…,n的n个人按顺序针方向围坐一张圆桌旁,每个人手中持有<br />一个密码(正整数)。首先输入一个正整数作为报数上限值m,然后,从第一个人开始按顺序针方向自1开始顺序报数,报到m的人离开桌子,并将他手中的密码作为新的m值,从顺序针方向的下一个就坐在桌旁的人开始重新从1报数,如此下去,直至所有人全部离开桌旁为止。<br />算法思想:<br />用单循环链表来解决这一问题,实现的方法首先要定义链表结点,单循环链表的结点结构与一般单链表的结点结构完全相同,
C语言实现单链表(带头结点)的基本操作(创建,头插法,尾插法,删除结点,打印链表)
C语言实现单链表(带头结点)的基本操作(创建,头插法,尾插法,删除结点,打印链表)
单链表的基本操作c语言实现
#include<stdio.h> #define false 0 #define ok 1//定义节点的结构 typedef struct node{ int data; struct node *next; }node; typedef struct node *linklist;//初始化链表,创建一个链表并赋值 void creatlist(linklist *l,int n