帮我看看这个数据结构的题呢~~不知道怎么出错了

来源:百度知道 编辑:UC知道 时间:2024/09/20 20:37:02
》》大家帮我看看把~~编译起了~~ 执行到一半出错奥~~《《

//建立不少于10个结点的单链表,求倒数第K个结点的元素的数值。

#include<stdio.h>
#include<stdlib.h>
typedef struct lnode
{
int data;
struct lnode * next;
}linklist;
void jianli(linklist *l,int a[],int n)
{
linklist * s;int i;
l=(linklist *)malloc(sizeof(linklist));
l->next=NULL;
for(i=0;i<n;i++)
{
s=(linklist * )malloc(sizeof(linklist));
s->data=a[i];
s->next=l->next;
l->next=s;
}
}
int chazhao(linklist *l,int n,int k)
{
linklist *s;int i,a;
for(i=0;i<n-k+1;i++)
s=l->next;
a=s->data;
return(a);
}
void shuchu(linklist *l)
{
linklist *p=l->next;
while(p!=NULL)
{
printf("%5d",p->data);
p=p->next;
}
printf("\n");
}

void main()
{
linklist *y;int a[30];int n;int k

建造的时候出错了

void jianli(linklist *l, int a[], int n) {
linklist * s;
int i;
l = (linklist *) malloc(sizeof(linklist));
l->next = NULL;
for (i = 0; i < n; i++) {
s = (linklist *) malloc(sizeof(linklist));
s->data = a[i];
s->next = l->next;
l->next = s;

}
}

其中 l = (linklist *) malloc(sizeof(linklist));

是无效的

把它改成
int main() {
linklist *y;
y = (linklist *) malloc(sizeof(linklist));

放在主函数内就可以了

如过是c++的话
void jianli(linklist *l, int a[], int n)
改成
void jianli(linklist* &l, int a[], int n)就可以了

噢 买嘎的。。。怎么不加个编程的群,一起交流学习啊

13 16 24 48 85 67 23 79 94 25