课程链接
代码定义单链表
struct LNode{ //定义单链表结构ElemType data; //每个节点存放一个数据元素struct LNode *next //指针指向下一个节点};struct LNode*p=(struct LNode*)malloc(size(struct LNode*)); //增加一个新节点,并用指针p指向这个节点//可以用typedef把这个数据类型重命名,简化一下编码//typedef <数据类型> <别名>
以下就是简化后的编码
typedef struct LNode{ //定义单链表结构ElemType data; //每个节点存放一个数据元素struct LNode *next //指针指向下一个节点}LNode,*LinkList;
上下这两段代码是等价的
struct LNode{ //定义单链表结构ElemType data; //每个节点存放一个数据元素struct LNode *next //指针指向下一个节点};typedef struct LNode LNode;typedef struct LNode *LinkList; //这是一个指向struct LNode *的指针
现在表示一个单链表时,只需要声明一个头指针L,指向单链表的第一个节点
可以用 LNode L声明一个指向单链表第一个节点的指针
或者 LinkList L //这种方式代码可读性更强一点
*举个例子:
typedef struct Node{ElemType data;struct LNode *next;}LNode, *LinkList;LNode*GetElem(LinkList L,int i) //LNode强调的是返回的结点,LinkList强调这是一个单链表{int j=1;LNode *p=L->next;if(i==0)return L;if(i<1)return NULL;while(p!=NULL && j<1){p=p->next;j++;}return p;}
