标题:努力了几天,链表就是不入门,哥哥姐姐们来给看看这个程序吧
只看楼主
xdlearner
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2012-3-7
结帖率:80%
已结贴  问题点数:20 回复次数:18 
努力了几天,链表就是不入门,哥哥姐姐们来给看看这个程序吧
#include<stdio.h>
#include<stdlib.h>
 struct Node{
        int data;
        struct Node *next;
    }*LinkList;
int main(){
    int n,i;
    int CreatList(LinkList *L,int n);
    void ScanfList(LinkList *L);
    int DeleteList(LinkList *L);
    struct Node *h;
    h=(LinkList)malloc(sizeof(struct Node));
    if(h!=NULL)
        h->next=NULL;
    printf("Please input the n:");
    scanf("%d",&n);
    CreatList(h,n);
    for(i=0;i<n;i++){
        ScanfList(h);
        DeleteList(h);
    }
    return 0;

}
int CreatList(LinkList *L,int n){
    int i;
    LinkList p;
    printf("Please input the %d data:",n);
    for(i=n;i>0;i--){
        p=(LinkList)malloc(sizeof(struct Node));
        if(!p)
            return -1;
        printf("Please input the %d data:",n);
        scanf("%d",&p->data);
        p->next=L->next;
        L->next=p;
    }
    return 0;
}
void ScanfList(LinkList *L){
    fro(;L->next!=NULL;L->next=L->next->next)
        printf("%d\t",L->next->data);
}
int DeleteList(LinkList *L){
    LinkList p;
    p=L->next;
    L->next=L->next->next;
    free(p);
    if(!L) return 1;
    return 0;
}
搜索更多相关主题的帖子: include void next 哥哥 
2012-03-07 21:37
xdlearner
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2012-3-7
得分:0 
1.1.c
c:\users\administrator\desktop\程序集和\1.1.c(9) : error C2143: syntax error : missing ')' before '*'
c:\users\administrator\desktop\程序集和\1.1.c(9) : error C2143: syntax error : missing ';' before '*'
c:\users\administrator\desktop\程序集和\1.1.c(9) : error C2065: 'L' : undeclared identifier
c:\users\administrator\desktop\程序集和\1.1.c(9) : error C2100: illegal indirection
c:\users\administrator\desktop\程序集和\1.1.c(9) : error C2059: syntax error : 'type'
c:\users\administrator\desktop\程序集和\1.1.c(9) : error C2059: syntax error : ')'
c:\users\administrator\desktop\程序集和\1.1.c(10) : error C2143: syntax error : missing ';' before 'type'
c:\users\administrator\desktop\程序集和\1.1.c(11) : error C2143: syntax error : missing ';' before 'type'
c:\users\administrator\desktop\程序集和\1.1.c(12) : error C2143: syntax error : missing ';' before 'type'
c:\users\administrator\desktop\程序集和\1.1.c(13) : error C2065: 'h' : undeclared identifier
c:\users\administrator\desktop\程序集和\1.1.c(13) : warning C4047: '=' : 'int ' differs in levels of indirection from 'struct Node *'
c:\users\administrator\desktop\程序集和\1.1.c(13) : error C2146: syntax error : missing ';' before identifier 'malloc'
c:\users\administrator\desktop\程序集和\1.1.c(14) : warning C4047: '!=' : 'int ' differs in levels of indirection from 'void *'
c:\users\administrator\desktop\程序集和\1.1.c(15) : error C2223: left of '->next' must point to struct/union
c:\users\administrator\desktop\程序集和\1.1.c(20) : warning C4013: 'ScanfList' undefined; assuming extern returning int
c:\users\administrator\desktop\程序集和\1.1.c(21) : warning C4013: 'DeleteList' undefined; assuming extern returning int
c:\users\administrator\desktop\程序集和\1.1.c(26) : error C2143: syntax error : missing ')' before '*'
c:\users\administrator\desktop\程序集和\1.1.c(26) : error C2143: syntax error : missing '{' before '*'
c:\users\administrator\desktop\程序集和\1.1.c(26) : error C2040: 'L' : 'int *' differs in levels of indirection from 'int '
c:\users\administrator\desktop\程序集和\1.1.c(26) : error C2059: syntax error : 'type'
c:\users\administrator\desktop\程序集和\1.1.c(26) : error C2059: syntax error : ')'
c:\users\administrator\desktop\程序集和\1.1.c(41) : error C2143: syntax error : missing ')' before '*'
c:\users\administrator\desktop\程序集和\1.1.c(41) : error C2143: syntax error : missing '{' before '*'
c:\users\administrator\desktop\程序集和\1.1.c(41) : error C2059: syntax error : ')'
c:\users\administrator\desktop\程序集和\1.1.c(41) : error C2040: 'L' : 'int *' differs in levels of indirection from 'int '
c:\users\administrator\desktop\程序集和\1.1.c(41) : error C2054: expected '(' to follow 'L'
c:\users\administrator\desktop\程序集和\1.1.c(45) : error C2143: syntax error : missing ')' before '*'
c:\users\administrator\desktop\程序集和\1.1.c(45) : error C2143: syntax error : missing '{' before '*'
c:\users\administrator\desktop\程序集和\1.1.c(45) : error C2059: syntax error : ')'
c:\users\administrator\desktop\程序集和\1.1.c(45) : error C2040: 'L' : 'int *' differs in levels of indirection from 'int '
c:\users\administrator\desktop\程序集和\1.1.c(45) : error C2054: expected '(' to follow 'L'
执行 cl.exe 时出错.
我心寒了。。。。。。
2012-03-07 21:37
小鱼儿c
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:852
专家分:1317
注 册:2011-4-1
得分:2 
程序代码:
struct Node{
        int data;
        struct Node *next;
    }*LinkList;

结构你用错了。
你是想用LinkList 做别名,而你上面那样是申明一个struct node* 的一个指针
程序代码:
typedef struct Node{
        int data;
        struct Node *next;
    }*LinkList;
所以你下面代码都要改。。

用心做一件事情就这么简单
2012-03-07 22:22
小鱼儿c
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:852
专家分:1317
注 册:2011-4-1
得分:0 
不用心寒,慢慢来

用心做一件事情就这么简单
2012-03-07 22:23
xdlearner
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2012-3-7
得分:0 
回复 4楼 小鱼儿c
我花了整个晚上去编这个,呜呜,我再调试下
2012-03-07 22:51
xdlearner
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2012-3-7
得分:0 
typedef struct Node{
        int data;
        struct Node *next;
    }*LinkList;
后面的这个linklist是什么意思呢,它或者说有什么作用?linklist p;是用来定义一个指向节点的指针类型吗
2012-03-07 22:56
小鱼儿c
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:852
专家分:1317
注 册:2011-4-1
得分:0 
是 LinkList 是 struct Node* 是一样的。。
申明时候好写些。。

用心做一件事情就这么简单
2012-03-07 23:05
xdlearner
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2012-3-7
得分:0 
回复 7楼 小鱼儿c
#include<stdio.h>
#include<stdlib.h>
 struct Node{
        int data;
        struct Node *next;
    }linklist;
int CreatList(linklist &L,int n){
    int i;
    LinkList p;
    printf("Please input the %d data:",n);
    for(i=n;i>0;i--){
        p=(LinkList*)malloc(sizeof(struct Node));
        if(!p)
            return -1;
        printf("Please input the %d data:",n);
        scanf("%d",&p->data);
        p->next=L->next;
        L->next=p;
    }
    return 0;
}
void ScanfList(linklist &L){
    fro(;L->next!=NULL;L->next=L->next->next)
        printf("%d\t",L->next->data);
}
int DeleteList(linklist &L){
    LinkList p;
    p=L->next;
    L->next=L->next->next;
    free(p);
    if(!L) return 1;
    return 0;
}
int main(){
    int n,i;
    struct Node *h;
    h=(linklist*)malloc(sizeof(struct Node));
    if(h!=NULL)
        h->next=NULL;
    printf("Please input the n:");
    scanf("%d",&n);
    CreatList(h,n);
    for(i=0;i<n;i++){
        ScanfList(h);
        DeleteList(h);
    }
    return 0;

}
int DeleteList(linklist &L)这句居然就有四个错误,到底为啥哇
C:\Users\Administrator\Desktop\程序集和\1.1.c(7) : error C2143: syntax error : missing ')' before '&'
C:\Users\Administrator\Desktop\程序集和\1.1.c(7) : error C2143: syntax error : missing '{' before '&'
C:\Users\Administrator\Desktop\程序集和\1.1.c(7) : error C2059: syntax error : '&'
C:\Users\Administrator\Desktop\程序集和\1.1.c(7) : error C2059: syntax error : ')
谢谢版主大哥。。。。。。
2012-03-07 23:20
xdlearner
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2012-3-7
得分:0 
给看看,我还是没调出来
2012-03-08 11:04
fanliguang
Rank: 2
等 级:论坛游民
帖 子:31
专家分:52
注 册:2012-2-26
得分:2 
羡慕,我光看书了。基本没动手写过
2012-03-08 13:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-362511-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.592686 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved