⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 seqlist.h

📁 球体积的计算
💻 H
字号:
// Seqlist.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "iostream.h"
#include "stdlib.h"

const int MaxListSize=100;

template<class T>
class SeqList
{ 
	private:
		T data[MaxListSize];
        int size;
	public:
        SeqList(void);
        ~SeqList(void);
        int ListSize(void) const;
        int ListEmpty(void) const;
        int Find(T& item) const;
        T GetData(int pos) const;
        void Insert(const T& item, int pos);
        T Delete(const int pos);
        void ClearList(void);
		void Sort();
		T Min();
};

template<class T>
SeqList<T>::SeqList(void):size(0){ }

template<class T>
SeqList<T>::~SeqList(void){ }   

template<class T>
int SeqList<T>::ListSize(void) const
{ return size; }

template<class T>
int SeqList<T>::ListEmpty(void) const
{ 
	if (size==0) return 1;
    else return 0; 
}

template<class T>
int SeqList<T>::Find(T& item) const
{ 
	if (size==0) return -1;
	int i=0;
	while (i<size && item!=data[i])i++;
	if (i<size) return i;
	else return -1;
}

template<class T>
T SeqList<T>::GetData(int pos) const
{ 
	if (pos<0 || pos>size-1)
    { 
		cerr<<"参数pos越界出错!"<<endl;
        exit(1);
    }
	return data[pos];
}

template<class T>
void SeqList<T>::Insert(const T& item,int pos)
{ 
	int i;
	if (size==MaxListSize)
    { 
		cerr<<"顺序表已满,无法插入!"<<endl;
		exit(1);
    }
	if (pos<0||pos>size)      
    {
		cerr<<"参数pos越界出错!"<<endl;
		exit(1);
    }
	for (i=size;i>pos;i--) data[i]=data[i-1];
	data[pos]=item;
	size++;
}

template<class T>
T SeqList<T>::Delete(const int pos)
{ 
	if (size==0)
	{ 
		cerr<<"顺序表已空,无元素可删!"<<endl;
		exit(1);
    }
	if (pos<0 || pos>size-1)
	{ 
		cerr<<"参数pos越界出错!"<<endl;
		exit(1);
    }
	T temp=data[pos];
	for (int i=pos;i<size-1;i++) data[i]=data[i+1];
	size--;
	return temp;
}

template<class T>
void SeqList<T>::ClearList(void)
{ size=0; }

template<class T>
void SeqList<T>::Sort()
{
	SeqList<T> MinList;
	int Size=size;
	for(int i=0;i<Size;i++)
	{
		MinList.Insert(Min(),i);
		Delete(0);
	}
	for(int j=0;j<Size;j++)
		cout<<MinList.GetData(j)<<" ";
}

template<class T>
T SeqList<T>::Min()
{
	if(size==0)
	{ 
		exit(1);
    }
    //冒泡排序
	for(int i=0;i<size-1;i++)
	{
		int min=i;
		for(int j=i+1;j<size;j++)
			if(data[j]<data[min])
				min=j;
			T temp=data[i];
			data[i]=data[min];
			data[min]=temp;
	}
	return data[0];  //返回最小元素

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -