鱼C论坛

 找回密码
 立即注册
查看: 1249|回复: 2

求助链表的问题

[复制链接]
发表于 2020-11-16 19:32:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 夙惜言 于 2020-11-16 19:41 编辑

QQ截图20201116193002.jpg
感觉自己快忘干净了,一直报错:
In function 'main':
[Error] expected declaration specifiers or '...' before '&' token
[Error] expected declaration specifiers or '...' before numeric constant

附上原码:
#include <stdio.h>
#include <stdlib.h>

typedef int ElemType;
//¹ØÓÚElemType:ËüÊÇelement type£¨¡°ÔªËصÄÀàÐÍ¡±£©µÄ¼ò»¯Ìå¡£
//¿ÉÒÔÊÇÈκÎÊý¾ÝÀàÐÍ£¬ÕâÀïÊÇintÐÍ  

typedef struct Node
{
        int data;
        struct Node * next;
}Node;

typedef struct Node* LinkList;
//link:Á´½Ó    list:Ŀ¼

int GetElem (LinkList L,int i,int *e);
//·µ»ØÁ´±íLµÚi¸öÊý¾Ý 

int ListInsert (LinkList L,int i,int e);
//½«ÔªËØe²åÈëÁ´±íLµÄµÚi¸öλÖà 

int ListDelete (LinkList L,int i,int *e);
//ɾ³ýÁ´±íLµÄµÚi¸öλÖõÄÊýÖµ£¬²¢ÓÃe·µ»ØÆäÖµ 

LinkList CreateListHead ();
//´´½¨Ò»¸öÁ´±í¡ª¡ªÍ·²å·¨ 

int main (void)
{
        LinkList *L;
        LinkList CreateListHead(&L,3);
        
        return 0;
}

int GetElem (LinkList L,int i,int *e)
{
        int j;
        LinkList p = L->next;
        
        for(j = 1  ;  p && j <= i  ;  j++)
        //°É¡®p¡¯·ÅÔÚÅж¨½á¹ûÀÈç¹û¡®p¡¯ÎªNULL£¬ÄÇô¡®&&¡¯·µ»ØΪ0£¬³ÌÐò½áÊø
        //ÕâÑùµÄºÃ´¦¾ÍÊÇÊ¡È¥ÁËÒ»´ÎifÅж¨ 
        {
                p = p->next;
        }
        
        if( !p || j>i )
        {
                return 0;
        } 
        
        *e = p->data;
        
        return 1;
}

int ListInsert (LinkList L,int i,int e)
{
        int j;
        LinkList _new;
        
        LinkList p = L->next;
        
        while( p && j<i )
        {
                p = p->next;
                j++;
        }
        
        if( !p || j>i )
        {
                return 0;
        }
        
        _new = (LinkList)malloc(sizeof(Node));
        _new->data = e;
        
        _new->next = p->next;
        p->next = _new;
        
        return 1;
} 

int ListDelete (LinkList L,int i,int *e)
{
        int j;
        LinkList p = L;
        
        for(j = 0  ;  j < i && p  ;  j++)
        {
                p = p->next;
        }
        
        if( !(p->next) || j>i )
        {
                return 0;
        }
        
        p = p->next->next;
        
        *e = p->next->data;
        
        free(p->next);
        
        return 1;
} 

LinkList CreateListHead( LinkList *L,int number )
{
        LinkList p;
        int newdata;
        
        (*L) = (LinkList)malloc(sizeof(Node));
        (*L)->next = NULL;
        
        
        for( int i = 1;  i < number  ;  i++ )
        {
                p = (LinkList)malloc(sizeof(Node));
                scanf("%d",&newdata);
                p -> data = newdata;
                p -> next = (*L)->next;
                (*L) -> next = p;
        }
        
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-11-16 19:34:35 | 显示全部楼层
本帖最后由 夙惜言 于 2020-11-16 19:36 编辑

不知道为什么我的备注变成了一片乱码
QQ截图20201116193400.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-16 20:25:24 | 显示全部楼层
CreateListHead 和 main 应该这么写.
void CreateListHead(LinkList *L,int number );


int main (void)
{
        LinkList L;
        CreateListHead(&L,3);
        
        return 0;
}

void CreateListHead(LinkList *L,int number )
{
        LinkList p;
        int newdata;
        
        (*L) = (LinkList)malloc(sizeof(Node));
        (*L)->next = NULL;
        
        
        for( int i = 1;  i < number  ;  i++ )
        {
                p = (LinkList)malloc(sizeof(Node));
                scanf("%d",&newdata);
                p -> data = newdata;
                p -> next = (*L)->next;
                (*L) -> next = p;
        }
        
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 13:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表