CodeWTF 2017-01-15 03:33 采纳率: 0%
浏览 1232

高一凡 数据结构 题目不理解,求解

/*
void print(ELemType c) //显示错误的地方!
{
printf("%d",c);

}
*/
//头文件省略

define OK 1;

define ERROR 0;

typedef int Status;

typedef int ElemType;

struct LNode

{

ElemType data;

LNode * next;

};

typedef LNode * LinkList;

void CreateList(LinkList &L,int n)

//逆位序(节点插在表头)输入n个元素的值,建立带表头结点的单链线性表L

{
int i;
LinkList p;

L = (LinkList)malloc(sizeof(LNode));
L->next = NULL;
printf("请输入%d个数据\n",n);

for(i = n;i > 0;i--)
{
    p = (LinkList)malloc(sizeof(LNode));
    scanf("%d",&p->data);
    p->next = L->next;
    L->next = p;
}

}

void CreateList1(LinkList &L,int n)
//正位序(结点插在表尾)输入n个元素的值,建立带头结点的单链线性表L;

{
int i;
LinkList p,q;

L = (LinkList)malloc(sizeof(LNode));
L->next = NULL;
q = L;

printf("请输入%d个数据\n",n);

for(i = 1;i <= n;i++)
{
    p = (LinkList)malloc(sizeof(LNode));

    scanf("%d",&p->data);

    q->next = p;  //注意不是L->next = p,因为每次插入是插在上个节点的后面
    q = q->next;
}

p->next = NULL;

}

void MergeList(LinkList La,LinkList &Lb,LinkList &Lc)

{
LinkList pa = La->next,pb = Lb->next,pc;
Lc = pc = La;

while(pa && pb)
    if(pa->data <= pb->data)
    {
        pc->next = pa;
        pc = pa;
        pa = pa->next;
    }
    else
    {
        pc->next = pb;
        pc = pb;
        pb = pb->next;

    }

    pc->next = pa ? pa : pb;
    free(Lb);
    Lb = NULL;

}

void ListTraverse(LinkList L,void(* visit)(ElemType))

{
LinkList p = L->next;

while(p)
{
    visit(p->data);
    p = p->next;
}

printf("\n");

}

**void print(ELemType c) //显示错误的地方!

{

printf("%d",c);

}**

void main()
{
int n = 5;
LinkList La,Lb,Lc;
printf("按非递减顺序,");
CreateList(La,n);
printf("La = ");
ListTraverse(La,print);

printf("按非递减顺序,");
CreateList(Lb,print);
printf("Lb = ");
ListTraverse(Lb,print);

MergeList(La,Lb,Lc);
printf("Lc = ");
ListTraverse(Lc,print);

}

/*
error C2065: 'ELemType' : undeclared identifier

//不理解这儿:我前面已经用 typedef int ElemType 定义了ElemType,为什么此处还提示这样的错误信息!

error C2146: syntax error : missing ')' before identifier 'c'

//这个我也不明白了

error C2182: 'print' : illegal use of type 'void'

//这个print是通过调用ListTraverse来实现的,就应该是void型,此处为什么不正确

error C2059: syntax error : ')'
*/

  • 写回答

5条回答 默认 最新

  • CodeWTF 2017-01-15 03:34
    关注

    这个不知道怎么理解,求大神指点!感激不尽!

    评论

报告相同问题?

悬赏问题

  • ¥100 求数学坐标画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站