# include<stdio.h>
typedef struct LNode{
ElemType data;
struct LNode *next;
} LNode, *LinkList;
LNode *p = (LNode *) malloc(sizeof(LNode));
free (p)
/**
表示一个单链时,只需要声明一个头指针L 指向单链表的第一个结点。各个指针使用 *next 指针链接
LNode * L;
或者 LinkList L; // 声明一个指向单链表第一个结点的指针
*/
typedef struct LNode {
ElemType data;
struct LNode *next;
}LNode ,*LinkList;
// 初始化一个空的单链表
bool InitList(LinkList &L)
{
L = NULL;
return true;
}
void test()
{
LinkList L; // 声明一个指向单链表的指针
InitList(L); // 初始化一个空表
}
typedef struct LNode{ // 定义单链表结点类型
ElemType data; // 每个节点存放一个数据元素
struct LNode *next; // 指针指向下一个节点
}LNode, *LinkList;
// 带头结点 在 第i个位置插插入元素 e // i 位序
bool ListInsert(LinkList &L,int i,ElemType e){
if(i<1)
return false;
LNode *p; // 指针 p 指向当前扫描到的节点
int j = 0; // 当前 p 指向的第几个结点
p = L; // L 指向头结点,头结点是第0个结点(不存数据)
while(p!=NULL && j < i-1) // 循环找到第 i-1 个节点
{
p= p->next;
j++;
}
if(p==NULL) // i值不合法
return false;
LNode *s = (LNode *) malloc(sizeof(LNode));
s->data = e;
s->next = p->next;
p->next = s; // 将结点s连到p之后
return true; // 插入成功
}