个人复习过程中的回顾,有问题请与我交流。(纯c语言版,未用到c++的引用)
/*单链表(含头结点)*/
#include<stdio.h>
#include<stdlib.h>
//#define ElemType int
typedef int ElemType;
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
LinkList CreateList1(ElemType a[], int n); //头插法建立单链表
LinkList CreateList2(ElemType a[], int n); //尾插法创建单链表
void OutputList(LinkList L); //输出单链表全部元素
int Length(LinkList L); //获取单链表长度(不含头结点)
int InsertLNode(LinkList L, int i, ElemType e); //在第i个位置插入结点,即在第i-1个结点之后插入新结点
int DeleteNode(LinkList L, int i, ElemType *e); //删除第i个结点,并用e返回其值
void main(){
LinkList L = NULL;
ElemType a[] = { 1, 2, 3, 4, 5 };
ElemType e;
L = CreateList2(a, 5);
OutputList(L);
InsertLNode(L, 6, 6);
OutputList(L);
DeleteNode(L, 1, &e);
printf("%d\n", e);
OutputList(L);
}
LinkList CreateList1(ElemType a[], int n){ //头插法建立单链表
int i;
LinkList L = NULL, s = NULL