C语言中.和->的区别
-
‘“.”前面为结构体变量
-
->前面是指针
-
读法不同:
(*a).b读作,结构体a的b
a->b读作,a指向结构体的b
单链表定义代码的基本结构
在读下面之前,要明确一点:线性表是抽象数据类型,与数据类型类似(int、float等)
书上出现的代码大部分都是算法,不是完整的代码,完整的代码应该包括:头文件+定义存储结构+操作(基本运算)+main
头文件
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
宏定义(需要的可加)
#define xxx
定义单链表的存储结构
typedef char Elemtype;
typedef struct Node//定义结点
{
Elemtype data;
struct Node *next;
} Node,*Linklist;//取别名,一般用Linklist来声明头指针
说明:Linklist与Node同为结构指针类型,是等价的。
e.g.定义Linklist L,则L是单链表的头指针;
Node定义单链表中结点的指针,比如Node*p,则p为指向单链表中结点的指针变量。
基本操作
包括查找、删除、插入等,此处为初始化单链表,剩余部分在接下来的文章
单链表的初始化
目的:申请结点空间,置为空表
void init_Linklist(Linklist *L)
{
*L=(Linklist)malloc(sizeof(Node));//申请结点空间
(*L)->next=NULL;//置为空表
}
main主函数
main()
{
Linklist L;
init_Linklist(&L);//调用单链表初始化函数
}
说明:可将除了main部分的代码放于头文件中,更为简洁。