链表问题~~在线等!!!!急急!!答好有悬赏分!!

来源:百度知道 编辑:UC知道 时间:2024/05/27 21:59:42
题目要求是:已知线性表的元素以值递增有序排列,并以单链表作存储结构,试写一个高效的算法,删除所有值大于mink和小于maxk的元素,同时释放结点空间。
本人写的程序如下:
#include<iostream.h>
typedef struct Lnode{
int data;
Lnode *next;
} *Linklist;
void Creatlist(Linklist&L,int a[],int n)
{
LNode*p=new LNode;
L=p;
for(int i=0;i<n;i++)
{
p->data=a[i];
if(i==n-1) break;
p->next=new LNode;
p=p->next;
}
p->next=NULL;
}
void listdelete(Linklist &L,int mink,int maxk)
{
Lnode *p=new Lnode;
Lnode *s=new Lnode;
p=L;
if(p->data>mink&&p->data<maxk)
{
if(s->next!=p)
s=s->next;
else
s->next=p->next;
}
delete p;delete s;
}
void destroy(Linklist &L)
{
L=NULL;
}
void main()
{
Linklist L;
Lnode *q=new Lnode;
int n;
cout<<"请输入元素的个数:"<<endl;
cin>

//给你修改好了 只是编译通过没有错误 具体能不能满足你的要求要看你的程序 结果是不是对了

#include<iostream.h>
typedef struct Lnode
{
int data;
Lnode *next;
} *Linklist;
void Creatlist(Linklist&L,int a[],int n)
{
Lnode*p=new Lnode;
L=p;
for(int i=0;i<n;i++)
{
p->data=a[i];
if(i==n-1) break;
p->next=new Lnode;
p=p->next;
}
p->next=NULL;
}
void listdelete(Linklist &L,int mink,int maxk)
{
Lnode *p=new Lnode;
Lnode *s=new Lnode;
p=L;
if(p->data>mink&&p->data<maxk)
{
if(s->next!=p)
s=s->next;
else
s->next=p->next;
}
delete p;delete s;
}
void destroy(Linklist &L)
{
L=NULL;
}
void main()
{
Linklist L;
Lnode *q=new Lnode;
int n;
cout<<"请输入元素的个数:"<<endl;
cin>>n;
int *A=new int[n];
for(in