单链表优缺点
链表是非随机存取的存储结构,和顺序表相比,链表存储结构在实现插入、删除的操作时,不需要移动大量数据元素(但不容易实现随机存取线性表的第 i 个数据元素的操作)。所以,链表适用于经常需要进行插入和删除操作的线性表,如飞机航班的乘客表等
单链表的定义
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
typedef struct Node
{
int data; //数据域
struct Node *next; //指针域
}NODE,*PNODE;
基本操作的实现
单链表的创建
单链表的创建分为两种,第一种在表头插入数据,第二种在表尾插入数据
在表头插入数据
PNODE Create1()
{
int i,n;
PNODE pNew,pHead=NULL;
pHead=(PNODE)malloc(sizeof(NODE));
if(NULL==pHead)
exit(-1);
pHead->next=NULL; //先建立一个带头结点的单链表
printf("请输入数据元素的个数:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
pNew=(PNODE)malloc(sizeof(NODE));
if(NULL==pNew)
exit(-1);
printf("请输入第%d个元素的值:",i+1);
scanf("%d",&pNew->data);
pNew->next=pHead->next;
pHead->next=pNew;
}
return pHead;
}
在表尾插入数据
PNODE Create2()
{
int i,n;
PNODE pHead,pTail,pNew;
pHead=(PNODE)malloc(sizeof(NODE));
if(NULL==</