Code Bye

C语言程序

用尾插法建链表并输出节点数据:程序如下
#include<stdio.h>
#include<malloc.h>
typedef struct LNode
{
int data;
struct LNode *next;
}LNode,*Linklist;
Linklist Create(int n)
{ int i;
Linklist L=(Linklist) malloc(sizeof(LNode));
struct LNode *s,*r;
r=l;
printf(“输入元素: \n”);
for(i=1,i<=n,++i)
{
s=(linklist) malloc(sizeof(LNode));
scanf(“%d”,&s->data;)
r->next=s;
r=s;
return L;
}
}
void print(Linklist head)
{
Linklist p;
p=head;
while(p!=NULL)
{printf(%d\n”,p->data);
p=p->next;
}
}
int main()
{ int n;
printf(“输入的节点数为:\n”);
printf(“%d”,&n);
Linklist create();
print();
}
解决方案

50

#include<stdio.h>
#include<malloc.h>
typedef struct LNode
{
    int data;
    struct LNode *next;
}LNode,*Linklist;
Linklist create(int n)
{
    int i;
    Linklist l = (Linklist) malloc(sizeof(LNode));
    struct LNode *s,*r;
    r = l;
    printf("输入元素: \n");
    for(i = 1; i <= n; ++i)
    {
        s = (Linklist) malloc(sizeof(LNode));
        scanf("%d", &s->data);
        r->next = s;
        r = s;
    }
    return l;
}
void print(Linklist head)
{
    Linklist p;
    p = head->next;
    while(p) {
        printf("%d\n", p->data);
        p = p->next;
    }
}
int main(void)
{
    int n;
    Linklist head = NULL;
    printf("输入的节点数为:\n");
    scanf("%d", &n);
    head = create(n);
    print(head);
    return 0;
}

建议先把C语言的语法学懂了,你的这个程序里有许多语法错误,基本函数使用错误;这是最基本的,链表操作还是有一定的难度的,所以本人的建议是先学好基本的,在学习有难度的。一点点的来,一口不好吃个胖子。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C语言程序