typedef struct ElemType{ typedef struct LNode{ 自己的理解:例如:LNode List; LinKList L; L=&List; |
|
10分 |
1.对的
2.前者 3.LNode temp; L->next = &temp; |
Status MakeNode(LinKList *L, ElemType e){
LinKList *q; LinKList *p=L; q = (LinKList *)malloc(sizeof(LinKList)); if (!q) exit(OVERFLOW); (*q)->data = e; (*q)->next = NULL; while (NULL != *p) { L = p; *p = (*L)->next; } (*L)->next = *q; return OK; } 这段代码在(*q)->data = e;会出错,是什么原因呢? |
|
Status MakeNode(LinKList *L, ElemType e){ 这段代码在(*q)->data = e;会出错,是什么原因呢? |
|
10分 |
q是一个指向结构体的指针,如果对q进行了解引用,*q就是该指针所指向的结构体的对象,如果需要使用成员的话,请使用点操作符。所以应该是q->data, (*q).data这样使用结构中的成员。 |
10分 |
typedef struct LNode{
ElemType data; struct LNode *next; }*LinkList; 这句typedef已经将LinkList变为LNode*的别名了,所以你上面在定义p的时候直接LinkList p就行了,在加个*就是二级指针了。 |
谢谢你的回答,以下还有几个问题: typedef struct LNode{ typedef struct { |
|
#include<stdio.h>
#include<stdlib.h> #define TURE 1 typedef int Status; typedef struct ElemType{ typedef struct LNode{ //构造一个空链表 //在链表尾加入节点 //销毁线性表L,L不再存在 //判断e是否在L中,是则返回OK,否则返回ERROR //建立一个多项式链表 void main() 这段代码在运行时会提示出错,麻烦帮找错误! |
|
10分 |
L是个结构体变量,所以L.tail tail是个指向结构体的指针,所以tail->data, data也是个结构体变量,所以data.coef。所以就是L.tail->data.coef谭老师的书看完之后可以看下c primer plus期间可以看下郝斌的C语言的视频教程。之后看看c和指针和c陷阱与缺陷。我也是去年才开始学编程的,这也是我自己的学习路线。之后准备学啥就看你自己的喜好了,我之后又去学了c++,前段时间才看完c++primer,准备再看一遍。还有传智播客的网上有很多免费的视频,感觉讲的挺好的,有功夫可以去看看有什么自己想看的视频。谭老师的书看一遍就够,反正就是个领你上个道儿,后续的书籍也可以参考论坛里很多大神们推荐的书籍,看个2,3遍肯定是要的。 |
typedef struct LNode{ //构造一个空链表 //在链表尾后加入节点 void main() |
|
知道错误了,谢谢
|