1.编写函数,实现随机产生或键盘输入一组元素,建立一个带头结点的单链表(无序)
2.编写函数,实现遍历单链表
3.编写函数,实现把单向链表中元素逆置
4.编写函数,建立一个非递减有序单链表
5.编写函数,利用以上算法,建立两个非递减有序单链表,然后合并成一个非递减链表。
6.编写函数,在非递减有序单链表中插入一个元素使链表仍然有序
7.编写函数,实现在非递减有序链表中删除值为x的结点
8.编写一个主函数,在主函数中设计一个简单的菜单,分别调试上述算法
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
typedef struct Node
{
int data;
struct Node*next;
}Node, *LinkList;
void InitList(LinkList *L){
*L = (LinkList)malloc(sizeof(Node));
(*L)->next = NULL;
}
void CreateList(LinkList L)//建立单链表
{
Node *s;
int c ;
scanf("%d", &c);
while (c){
s = (LinkList)malloc(sizeof (Node));
s->data = c;
s->next = L->next;
L->next = s;
scanf("%d", &c);
}
}
void Print(LinkList L)//输出并遍历单链表
{
Node* p;
p = L->next;
while (p!=NULL){
printf("%d ", p->data);
p = p->next;
}
printf("\n");
}
void Ni