834数据结构单链表考纲要求:
- 单链表的算法:生成先进先出单链表(尾插法),后进先出单链表(头插法)
- 单链表的算法:生成不带表头的递增有序单链表,生成带表头的递增有序单链表
- 单链表的算法:在指定位置插入一个新结点;删除指定值的结点;在指定位置删除一个结点;
- 单链表的合并:两个递增有序的单链表合并成一个递增有序的单链表
1、建立单链表
LinkList类型声明;
typedef struct LNode
{
ElemType data; //数据域
struct LNode *next;
}LinkList; //用于声明单链表节点的类型
头插法:生成的链表中节点的顺序和原数组元素的顺序相反
void CreateListF(LinkList *&L,ElemType a[],int n)
{
LinkList *s;
int i ;
L=(LinkList *)malloc(sizeof(LinkList)); //创造头节点
L->next=NULL;
for(i=0;i<n;i++)
{
s=(LinkList *)malloc(sizeof(LinkList)); //创造新节点
s->data=a[i];
//头插法插入
s->next=L->next;
L->next=s;
}
}
尾插法:需增加一个尾节点指针r,初始时指向头节点,后一直指向当前链表的最后一个节点
LinkList *s,*r;
int i ;
L=(LinkList *)malloc(sizeof(LinkList)); //创造头节点
L->next=NULL;