`

线性表的一道试题

J# 
阅读更多

(1)用键盘输出线性表中的元素

(2)删除表中最小值的元素并由函数返回

(3)空出的位置由最后的一个元素填补

(4)若线性表为空则显示出错信息并退出

   (5)输出经过上述变化后的线性表

#include <iostream>
using namespace std;
#define maxsize 100
typedef struct
{
int data[maxsize];
int last;
}seqlist;
seqlist *init_seqlist()
{
seqlist *l;
l=new seqlist;
if(!l)
{
   cout<<"空间不足"<<endl;
   return NULL;
}
l->last=-1;
return l;
}
void insert(seqlist *l,int x)
{
l->last++;
l->data[l->last]=x;
}
void pop_seqlist(seqlist *l)
{
cout<<l->data[l->last]<<" ";
l->last--;
}
void delete1(seqlist *l)
{
int min,j,minvalue;
if(!l)
   cout<<"线性表为空"<<endl;
min=0;
for(j=1;j<=l->last;j++)
{
   if(l->data[min]>l->data[j])
    min=j;
}
minvalue=l->data[min];
l->data[min]=l->data[l->last];
//delete l->data[l->last];
l->last--;
cout<<"最小的元素为"<<minvalue<<endl;
}
//按从小到大排列
void main()
{
seqlist *l;
l=init_seqlist();
cout<<"输入10000为结束"<<endl;
int x;
cin>>x;

while(x!=10000)
{
   insert(l,x);
   cin>>x;
}
delete1(l);
while(l->last!=-1)
{
   pop_seqlist(l);
}
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics