单链表的基本操作,包括生成链表,插入节点,删除节点,交换奇偶节点,置换链表顺序,销毁链表,判断链表是否为环状,查询节点数据,遍历输出链表节点数据,找到链表中点。
一、代码+动画演示
0.其他
// define element type
typedef int ElemType;
// define struct of linked list
typedef struct LNode{
ElemType data;
struct LNode *next;
} LNode, *LinkedList;
// define Status
typedef enum {
ERROR=0,
SUCCESS=1
} Status;
1.单链表初始化
生成第一个节点,如果成功返回值1.
Status InitList(LinkedList *L)
{
*L=(LinkedList)malloc(sizeof(LNode));
if(!(*L))return ERROR;
(*L)->next=NULL;
return SUCCESS;
}
2.销毁单链表
void DestroyList(LinkedList *L)
{
LinkedList p;
while(*L!=NULL)
{
p=(*L)->next;
free(*L)