c语言数据结构-typedef struct的运用

问题描述

typedef struct的运用

问题:struct LNode *s,*q;下面代码中的这条语句中的struct是不是可以去掉,如果不行那么struct的作用是?谢谢!

typedef char ElemType;
typedef struct LNode
{
ElemType data;
struct LNode * next;
}LNode,*LinkList;

void InsertList(LinkList &L,ElemType x,int i)
{
int j=1;
struct LNode *s,*q;
s=new LNode;
s->data=x;
q=L;
if(i==1)
{
s->next=q;
L=s;
}
else
{
while(jnext!=null)
{
q=q->next;
j++;
}
if(j==i-1)
{
s->next=q->next;
q->next=s;
}
else
cout<<"wrong"<<endl;
}
}
void main()
{
LA=NULL;
int len=0;
InsertList(LA,'a',1);
InsertList(LA,'B',2);
InsertList(LA,'C',2);
len=ListLength(LA);
}

解决方案

可以去掉。
如果是C++的话, 你甚至不需要那个typedef

解决方案二:

实际上s和q两个指针还可以直接用上面的LinkList来声明。

时间: 2016-07-01

c语言数据结构-typedef struct的运用的相关文章

c语言数据结构问题 代码相似性度量

问题描述 c语言数据结构问题 代码相似性度量 我的思路:对要进行比较的所有代码段进行词法分析,并转化为特定的标记(token)串,自己制定一个转换规则.接着,通过两两比较标记(token)串来确定代码之间的相似性,并由此确定代码之间抄袭的程度. 将这两个代码分别转换为token串后,基于算法RKR-GST( running-karp-rabin greedy-string-tiling)算法思想,循环求取两个标记串中未被匹配部分的最大公共子串,将其用空格代替,并根据公式求出两个token串A,B

c语言-C语言,数据结构,树的孩子兄弟表示法,程序一切正常,但是有个问题不太懂了

问题描述 C语言,数据结构,树的孩子兄弟表示法,程序一切正常,但是有个问题不太懂了 我的困惑就是在creatTree函数中,参数是(LTNode &T),也就是说是struct node**型指针,但是在递归中,也就是在creatTree(T->firstchild)中,T->firstchild应该是struct node*型指针,为什么依然可以运行,且运行正确? printfTree()函数也是一样,我就不再多写了 而在main()函数中,我也只创建了LTNode T;在调用的时候

C语言的typedef问题

1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字.这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等). 在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明. 至于typedef有什么微妙之处,请你接着看下面对几个问题的具体阐述. 2. typedef & 结构的问题 当用下面的代码定义一个结构时,编译器报了一个错误,为什么呢?莫非C语言不允许在结构中包含指向它

c语言-数据结构课程设计!!求大神帮助

问题描述 数据结构课程设计!!求大神帮助 本人数据结构课程设计做的是算术表达式求值,但是程序运行起来一直无限循环.请各位大神求助!万分感谢.明天就要交了. #include #include #include #define OK1 1 #define OK2 1.0 #define TRUE 1 #define ERROR1 0 #define ERROR2 0.0 #define FALSE 0 #define OVERFLOW -2 #define STACK_INIT_SIZE 100

gcc-#define T Connection_T typedef struct T *T;

问题描述 #define T Connection_T typedef struct T *T; #define T Connection_T typedef struct T *T;这在gcc下是可以编译通过的,但是我想问接下来T代表什么意思阿?是Connection_T还是什么?还是结构体指针? 解决方案 你用gcc什么版本编译的 我得到的是 Line 2: error: conflicting declaration 'typedef struct Connection_T* Connec

c语言 数据结构-关于“学生管理系统”这个程序编程的一些问题

问题描述 关于"学生管理系统"这个程序编程的一些问题 #include #include typedef struct student { int num; int score; struct student *next; }student; void add(student *s)//全局的增加函数 { printf("请输入学生学号与分数:n"); scanf("%d %d",&s->num,&s->score);

声明-返回局部指针,typedef struct {}*p问题

问题描述 返回局部指针,typedef struct {}*p问题 #include #define ElemType char //节点声明,数据域.左孩子指针.右孩子指针 typedef struct BiTNode{ char data; struct BiTNode *lchild,*rchild; }BiTNode,*BiTree; //先序建立二叉树 BiTree CreateBiTree(){ char ch; BiTree T; scanf("%c",&ch);

C++变成规范之41:将数据成员设为私有的,无行为的聚类(C语言形式的struct除外)

摘要:     它们不关调用者的事:将数据成员设为私有的.简单的C语言形式的struct类型只是将一组值聚集在了一起,并不封装或者提供行为,只有在这种struct类型中才可以将所有数据成员都设成公用的.要避免将公用数据和非公用数据混合在一起,因为这几乎总是设计混乱的标志.     信息隐藏是优秀软件工程的关键.应该将所有数据成员都设为私有的,不管是现在,还是可以能发生变化的将来,私有数据都是类用来保持其不变式的最佳方式.     如果类要建模一个抽象,并因而必须维持一个不变式,那么使用公用数据就

数据结构 c语言-C语言数据结构课程设计实现一个集合数据结构

问题描述 C语言数据结构课程设计实现一个集合数据结构 题目:设计并实现一个集合数据结构Set.一个集合中没有重复元素,支持下列运算: boolean add(E o) 如果 set 中尚未存在指定的元素o,则添加此元素. boolean addAll(Set c) 如果 set 中没有指定集合c中的所有元素,则将其添加到此 set 中. void clear() 移除 set 中的所有元素. boolean contains(E o) 如果 set 包含指定的元素o,则返回 true. bool