线性表的链式存储结构——链表,包含单链表、双链表、循环链表等。单链表的结点由数据元素和指向下一个结点的指针构成,是最简单的一种链表结构。
对单链表的操作非常多,如查找、插入、删除、逆置、打印等,现对这些操作的实现做一个小结,代码用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]!='