实验内容:
1、随机产生或键盘输入一组元素,建立一个带头结点的单向链表(无序)。
2、遍历单向链表(显示)。
3、把单向链表中元素逆置(不允许申请新的结点空间)。
4、在单向链表中删除所有的偶数元素(值为偶数)结点。
5、编写在非递减有序链表中插入一个元素使链表元素仍有序的函数,并利用该函数建立一个非递减有序单向链表。
6、利用算法5建立两个非递减有序单向链表,然后合并成一个非递增链表。
7、利用算法5建立两个非递减有序单向链表,然后合并成一个非递减链表。
8、编写一个主函数,调试上述算法。
代码:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <time.h>
using namespace std;
typedef struct node{
int data;
struct node *next;
}Lnode,*Linklist;
Linklist CreateFromHead(){
Linklist L;
Lnode *s;
int x,n,num;
cout<<"请输入创建随机链表总个数:";
cin>>n;num=n;
L=(Linklist)malloc(sizeof(Lnode));
L->next=NULL;
srand((unsigned)time(NULL));
while(num>0){
x=rand()%100+1;
//printf("请输入第%d个数据元素:",n-num+1);
//cin>>x;
s=(Linklist)malloc(sizeof(Lnode));
s->data=x;
s->next=L->next;
L->next=s;
num--;
}
return L;
}
Linklist CreateFromHead_(){
Linklist L;
Lnode *s;
int x,n,num;
cout<<"请输入创建