/*****题目:已知线性表中的元素以值递增有序排列,并以单链表做存储结构。试写一高效的算法,*删除表中所有值大于mink且小于maxk的元素(若表中存在这样的元素),同时释放*被删除节点空间,并分析你的算法的时间复杂度(注意:mink和maxk是给定的两个*参变量,它们的值可以和表中的元素相同,也可以不同)*****/#include#include#include"dynalinklist.h"voiddelmminmax(linklist*l,intmin,intmax){linklistp=(*l)->next,q=(*l),r;while(p&&p->data<=min){q=p;p=p->next;}while(p&&p->datanext;q->next=p;free(r);}}//算法的时间复杂度为o(n)intmain(){linklistl;elemtypee,min,max;initlist(&l);printf("输入8个元素建立线性表l(元素递增有序):\n");for(inti=1;i<=8;i++){scanf("%d",&e);listinsert(&l,i,e);}printf("表l是:\n");listtraverse(l,visit);printf("请输入待删除的元素的区间是(min,max):\n");scanf("%d%d",&min,&max);delmminmax(&l,min,max);printf("删除(%d,%d)之间的元素后表l是:\n",min,max);listtraverse(l,visit);return0;}