线性链表的基本操作GetElem

我是数据结构的初学者线性链表搞了好长时间还没弄好我不知道GetElem_L(LinklistL,inti,int&e)和GetElem_L(LinklistL,inti,... 我是数据结构的初学者 线性链表搞了好长时间还没弄好

我不知道GetElem_L(Linklist L,int i,int &e) 和 GetElem_L(Linklist L,int i,int *e)的区别
还有 Create_List(Linklist &L,int n) 与 Create_List(Linklist *L,int n)的区别 大家告诉我下哦

下面是我的程序(我的程序运行完 打印n无法得到链表中的数据)
#include<stdio.h>
#include<malloc.h>
#define OK 1
#define ERROR 0

typedef struct LNODE
{
int data;
struct LNODE *link;
}NODE,*Linklist;

int GetElem_L(Linklist L,int i,int &e)
{
int j;
Linklist p;
p = L->link;
j = 1;
while(p && j < i)
{
p = p->link;
++j;
}
if(!p || j > 1)
return ERROR;
e = p->data;
return OK;
}

void Create_List(Linklist &L,int n)
{
L =(NODE *)malloc(sizeof(NODE));
Linklist p;

L -> link = NULL;
for(int i=0; i<n; ++i)
{
p=(NODE *)malloc(sizeof(NODE));
/* if(!p)
{
goto error;
}

/*init node*/
printf("please input the %d-th data\n", i);
scanf("%d", &p->data);

p->link=L->link;
L->link=p;
}
}

//error:
/* free the existing list*/
/* while(head)
{
p = head;
head = head->link;
free(p);
}

*/

void main()
{
Linklist l;
int n,m;
m = 2;
int count=5;
Create_List(l,count);
GetElem_L(l,m,n);
printf("第%d个数字是%d\n",m,n);
}
引用我看过了

大家帮我看下程序啊 我想输出线性链表里的第2个数值 这个程序无法输出想要结果
!!!!!!
展开
 我来答
winds504
推荐于2016-12-01 · TA获得超过374个赞
知道小有建树答主
回答量:283
采纳率:100%
帮助的人:374万
展开全部
GetElem_L函数中“if(!p || j > 1)”中的“1”改为i。
一般参数传递是单向的,为了实现双向传递,有两个办法:一个是C/C++中的指针,另一个就是C++中的引用。
函数参数表中的变量名前加'&'表示该形参是主函数中相应实参的引用,也就是说该形参变量就是主函数中的那个实参变量(它们占用的是同一个存储单元),可理解为在被调用函数中换了个名字(也可能换了个一样的名字)。既然是同一个变量,那么在被调用函数中改变了该变量的值,主函数中变量的值也就改变了。
在参数表中有引用的函数中,将该所有引用变量前+'*',就可直接变为参数表中使用指针的函数,另外主函数传递的参数要相应调整。
例如:
void swap(int &a, int &b){
int c;
c = a; a = b; b = c;
}
void main(){
int x = 1, y = 2;
swap(x , y);
}

void swap(int *a, int *b){
int c;
c = *a; *a = *b; *b = c;
}
void main(){
int x = 1, y = 2;
swap(&x , &y);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
清影星河6A
2008-11-14 · TA获得超过851个赞
知道小有建树答主
回答量:753
采纳率:0%
帮助的人:898万
展开全部
这其中涉及到 C++ 中引用的概念,建议把引用弄得明明白白
就不会有问题了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式