线性表的链式存储结构——链表,包含单链表、双链表、循环链表等。单链表的结点由数据元素和指向下一个结点的指针构成,是最简单的一种链表结构。
对单链表的操作非常多,如查找、插入、删除、逆置、打印等,现对这些操作的实现做一个小结,代码用C语言实现。
#include<stdio.h>
#include<stdlib.h>
typedef struct LNode
{
char data;
struct LNode *next;
}LinkList;
extern LinkList *CreatListF();//头插法
extern LinkList *CreatListE();//尾插法
extern int LocateList(LinkList *head, char e);//查找结点
extern LinkList *InsertList(LinkList *&head, int i, char e);//插入结点
extern LinkList *DeleteList(LinkList *&head, int i, char &e);//删除结点
extern int LengthList(LinkList *head);//计算链表的长度
extern void PrintList(LinkList *head);//打印链表
extern LinkList *ReverseList(LinkList *&head);//逆置链表
LinkList *CreatListF()
{
LinkList *head,*p;
char str[10];
int i;
head=(LinkList *)malloc(sizeof(LinkList));
head->next=NULL;
printf("please input a string:");
gets(str);
for(i=0;str[i]!='