请各路大侠帮我看看 怎么做啊,这是数据结构的两道题,小弟实在不会啊!谢谢了啊!
1.已知长度为n的非空线性表A采用顺序存储结构,请写一个算法找到该线性表中的最小数据元素。2.已知长度为n的非空线性表A采用顺序存储结构,并且每个数据元素均为一个无符号整...
1.已知长度为n的非空线性表A采用顺序存储结构,请写一个算法找到该线性表中的最小数据元素。
2.已知长度为n的非空线性表A采用顺序存储结构,并且每个数据元素均为一个无符号整数,请写一个程序删除线性表中原来序号为奇数的那些数据元素。 展开
2.已知长度为n的非空线性表A采用顺序存储结构,并且每个数据元素均为一个无符号整数,请写一个程序删除线性表中原来序号为奇数的那些数据元素。 展开
3个回答
展开全部
1.先用个排序函数排序,再用查找函数。
//排序(从大到小) 注意:单链表第一个结点为空结点,没有保存数据。
void paixu(Node *head,int n)
{
A *p,*s;
//对所有值排序(冒泡排序)
for(int i=0;i<n-1;i++)
{
p=head->next;
for(int j=0;j<n-i-1;j++)
{
s=p->next;
if(p->Value<s->Value)
{
int N=p->Value;
p->Value=s->Value;
s->Value=N;
}
p=p->next;
}
}
}
//查找最末尾的结点
int find(A *head)
{
A *ps;
ps = head;
if(ps == NULL)
cout<<"这是一个空链表!"<<endl;
while(ps->next !=NULL)
ps = ps->next;
return ps->Value;
}
2.
//删除结点
void delete(A *head)
{
A *p,q;
p = head;
q = p->next;
if(q == NULL )
cout<<"这是一个空链表!"<<endl;
else
{
while(q !=NULL)
{
if(q->Value % 2 != 0)
{
p->next = q->next;
delete q;
}
q = p->next;
p = q;
q = q->next;
}
}
}
//排序(从大到小) 注意:单链表第一个结点为空结点,没有保存数据。
void paixu(Node *head,int n)
{
A *p,*s;
//对所有值排序(冒泡排序)
for(int i=0;i<n-1;i++)
{
p=head->next;
for(int j=0;j<n-i-1;j++)
{
s=p->next;
if(p->Value<s->Value)
{
int N=p->Value;
p->Value=s->Value;
s->Value=N;
}
p=p->next;
}
}
}
//查找最末尾的结点
int find(A *head)
{
A *ps;
ps = head;
if(ps == NULL)
cout<<"这是一个空链表!"<<endl;
while(ps->next !=NULL)
ps = ps->next;
return ps->Value;
}
2.
//删除结点
void delete(A *head)
{
A *p,q;
p = head;
q = p->next;
if(q == NULL )
cout<<"这是一个空链表!"<<endl;
else
{
while(q !=NULL)
{
if(q->Value % 2 != 0)
{
p->next = q->next;
delete q;
}
q = p->next;
p = q;
q = q->next;
}
}
}
展开全部
1,p=A[0];
for(i=1;i<n;i++)
if(p>A[i])
p=A[i];
2, for(i=1;i<=n;i++)
if(i%2===1)
delete(&A,i);
这个是伪代码,具体的你自己去写了。
for(i=1;i<n;i++)
if(p>A[i])
p=A[i];
2, for(i=1;i<=n;i++)
if(i%2===1)
delete(&A,i);
这个是伪代码,具体的你自己去写了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询