亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 順序表.cpp

?? 屬于利用C++開發(fā)的數(shù)據(jù)結(jié)構(gòu)代碼
?? CPP
字號:
#include"iostream.h"
#include"stdlib.h"
#define LIST_INIT_SIZE 10
#define LISTINCREMENT 10
typedef struct{
	int *elem;
	int length;
	int listsize;
}SqList;

//順序表的初始化
int InitList_Sq(SqList &L)
{
	int a;
	L.elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int));
	if(!L.elem) exit(0);
	L.length=0;
	L.listsize=LIST_INIT_SIZE;
	cout<<"請輸入順序表中的數(shù)據(jù):(以0結(jié)束)"<<endl;
	cin>>a;
	for(int i=1;a!=0;i++)
	{
		L.elem[i]=a;
		L.length=i;
		cin>>a;
	}
	return 1;
}

//輸出順序表
void Print(SqList L)
{
	cout<<"現(xiàn)在的數(shù)據(jù)表是:"<<endl;
	for(int i=1;i<=L.length;i++)
		cout<<L.elem[i]<<' ';
	cout<<endl;
}

//在第i個位置之前插入元素
int ListInsert_Sq(SqList &L)
{
	int i,e;
	int *newbase,*p,*q;
	cout<<"請輸入你要插入的數(shù)據(jù):";
	cin>>e;
	cout<<"請輸入你要插入的位置:";
	cin>>i;
	if(i<1||i>L.length) 
	{
		cout<<"插入位置不合法!"<<endl;
		return 0;
	}
	if(L.length>=L.listsize)
	{
		newbase=(int *)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(int));
		if(!newbase) exit(0);
		L.elem=newbase;
		L.listsize+=LISTINCREMENT;
	}
	q=&(L.elem[i]);
	for(p=&(L.elem[L.length]);p>=q;--p) 
		*(p+1)=*p;
	*q=e;
	++L.length;
	Print(L);
	return 1;
}

//順序表的刪除,刪除第i個元素
int ListDelete_Sq(SqList &L)
{
	int *p,*q,i,e;
	cout<<"請輸入你要刪除的元素的位置:";
	cin>>i;
	if(i<1||i>L.length) 
	{
		cout<<"刪除位置不合法!"<<endl;
		return 0;
	}
	p=&(L.elem[i]);
	e=*p;
	q=L.elem+L.length;
	for(++p;p<=q;++p)
		*(p-1)=*p;
	--L.length;
	Print(L);
	return 1;
}

//順序查找
int Search_Seq(SqList L)
{//在順序表中順序查找關(guān)鍵字等于key的元素.若找到,返回該元素在表中的位置,否則為0.
	int key;
	cout<<"您選擇了順序查找."<<endl;
	cout<<"請輸入你要查找的元素:";
	cin>>key;
	L.elem[0]=key;
	for(int i=L.length;L.elem[i]!=key;--i);
	if(i!=0)
		cout<<"你要查找的元素在數(shù)據(jù)表中是第"<<i<<"個."<<endl;
	else cout<<"表中沒有此元素!"<<endl;
	return i;
}

//折半查找
int Search_Bin(SqList L)
{
	//在有序表L中折半查找其關(guān)鍵字等于key的數(shù)據(jù)元素。若找到,則函數(shù)值為
	//該元素在表中的位置,否則為0。
	int low,high,mid,key;
	cout<<"您選擇了折半查找."<<endl;
	cout<<"請輸入你要查找的元素:";
	cin>>key;
	low=1;
	high=L.length;
	while(low<=high)
	{
		mid=(low+high)/2;
		if(key==L.elem[mid]) return mid;
		else if(key<L.elem[mid]) high=mid-1;
		else low=mid+1;
	}
	return 0;
}

void Search_Bin_Result(SqList L)
{
	int i=Search_Bin(L);
	if(i!=0)
		cout<<"你要查找的元素在數(shù)據(jù)表中是第"<<i<<"個."<<endl;
	else cout<<"表中沒有此元素!"<<endl;
}

//直接插入排序
void InsertSort(SqList &L)
{
	cout<<"您選擇了直接插入排序."<<endl;
	for(int i=2;i<=L.length;++i)
		if(L.elem[i]<L.elem[i-1])
		{
			L.elem[0]=L.elem[i];
			L.elem[i]=L.elem[i-1];
			for(int j=i-2;L.elem[0]<L.elem[j];--j)
				L.elem[j+1]=L.elem[j];
			L.elem[j+1]=L.elem[0];
		}
	Print(L);
}

//希爾排序
void ShellInsert(SqList &L,int dk)
{
	for(int i=dk+1;i<=L.length;++i)
		if(L.elem[i]<L.elem[i-dk])
		{
			L.elem[0]=L.elem[i];
			for(int j=i-dk;j>0&&L.elem[0]<L.elem[j];j-=dk)
				L.elem[j+dk]=L.elem[j];
			L.elem[j+dk]=L.elem[0];
		}
}

void ShellSort(SqList &L)
{
	int k,dk;
	cout<<"您選擇了希爾排序."<<endl;
	dk=L.length/2;
	for(k=0;dk!=0;k++)
	{
		ShellInsert(L,dk);
		dk=dk/2;
		cout<<"第"<<k+1<<"次希爾排序的結(jié)果是:"<<endl;
		for(int i=1;i<=L.length;i++)
			cout<<L.elem[i]<<' ';
		cout<<endl;
	}
}

//快速排序
int Partition(SqList &L,int low,int high)
{
	int pivotkey;
	L.elem[0]=L.elem[low];
	pivotkey=L.elem[low];
	while(low<high)
	{
		while(low<high&&L.elem[high]>=pivotkey) --high;
		L.elem[low]=L.elem[high];
		while(low<high&&L.elem[low]<=pivotkey) ++low;
		L.elem[high]=L.elem[low];
	}
	L.elem[low]=L.elem[0];
	Print(L);
	return low;
}

void QSort(SqList &L,int low,int high)
{
	int pivotloc;
	if(low<high)
	{
		pivotloc=Partition(L,low,high);
		QSort(L,low,pivotloc-1);
		QSort(L,pivotloc+1,high);
	}
}

//堆排序
typedef SqList HeapType;
void HeapAdjust(HeapType &H,int s,int m)
{
	//使H成為一個大頂堆
	int j,rc;
	rc=H.elem[s];
	for(j=2*s;j<=m;j*=2)
	{
		if(j<m&&H.elem[j]<H.elem[j+1]) ++j;
		if(rc>=H.elem[j]) break;
		H.elem[s]=H.elem[j];
		s=j;
	}
	H.elem[s]=rc;
}

void HeapSort(HeapType &H)
{
	int i,t;
	cout<<"您選擇了堆排序."<<endl;
	for(i=H.length/2;i>0;--i)
		HeapAdjust(H,i,H.length);
	for(i=H.length;i>1;--i)
	{
		t=H.elem[1];	H.elem[1]=H.elem[i];	H.elem[i]=t;
		HeapAdjust(H,1,i-1);
	}
	Print(H);
}
		

void main()
{
	SqList L;
	int a,flag=0;     //flag=0時,順序標未排序;flag=1時,順序標已排序.
	if(InitList_Sq(L))
		Print(L);
	cout<<"你可以進行如下操作:"<<endl;
	cout<<"1.插入		2.刪除		  3.順序查找		4.折半查找"<<endl;
	cout<<"5.希爾排序	6.快速排序	  7.堆排序		8.直接插入排序"<<endl;
	cout<<"請輸入你要進行的操作代號,輸0退出."<<endl;
	cin>>a;
	while(a!=0)
	{
		switch(a)
		{
		case 1:
			ListInsert_Sq(L);
			break;
		case 2:
			ListDelete_Sq(L);
			break;
		case 3:
			Search_Seq(L);
			break;
		case 4:
			if(flag==0)
				cout<<"數(shù)據(jù)未排序!"<<endl;
			else
				Search_Bin_Result(L);
			break;
		case 5:
			if(flag==1)
				cout<<"數(shù)據(jù)已排序!"<<endl;
			else
			{
				ShellSort(L);
				flag=1;
			}
			break;
		case 6:
			if(flag==1)
				cout<<"數(shù)據(jù)已排序!"<<endl;
			else
			{
				cout<<"您選擇了快速排序."<<endl;
				QSort(L,1,L.length);
				flag=1;
			}
			break;
		case 7:
			if(flag==1)
				cout<<"數(shù)據(jù)已排序!"<<endl;
			else
			{
				HeapSort(L);
				flag=1;
			}
			break;
		case 8:
			if(flag==1)
				cout<<"數(shù)據(jù)已排序!"<<endl;
			else
			{
				InsertSort(L);
				flag=1;
			}
			break;
		default:
			cout<<"輸入錯誤!"<<endl;
			break;
		}
		cout<<"請輸入你要進行的操作代號,輸0退出."<<endl;
		cin>>a;
	}
}






?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产呦萝稀缺另类资源| 亚洲欧美日韩综合aⅴ视频| 日韩精品亚洲专区| 91精品国产综合久久蜜臀| 午夜av区久久| 欧美一区二区三区四区五区 | 暴力调教一区二区三区| 国产人成一区二区三区影院| 国产成人亚洲综合a∨猫咪| 久久亚洲精品小早川怜子| 丁香婷婷综合色啪| 亚洲欧美日韩在线播放| 欧美精品日韩一区| 国产最新精品免费| 综合亚洲深深色噜噜狠狠网站| 91片黄在线观看| 丝袜亚洲另类欧美综合| 久久影视一区二区| 91免费在线看| 美女视频免费一区| 亚洲国产高清在线| 欧美日韩一区 二区 三区 久久精品| 偷拍日韩校园综合在线| 国产日产欧美一区二区三区| 91浏览器入口在线观看| 美女视频一区二区三区| 亚洲人亚洲人成电影网站色| 欧美一区二区二区| 波多野结衣中文一区| 青青草精品视频| 国产精品福利一区| 日韩欧美国产一二三区| 99re这里只有精品6| 蜜桃一区二区三区四区| 国产精品久久久久永久免费观看 | 7777精品伊人久久久大香线蕉的| 国产真实乱对白精彩久久| 亚洲精品国产第一综合99久久| 欧美成人r级一区二区三区| 色视频成人在线观看免| 韩国女主播一区| 亚洲福利一区二区三区| 中文字幕一区三区| 26uuu国产电影一区二区| 欧美写真视频网站| 成人综合激情网| 久久成人免费电影| 亚洲一区在线视频| 中日韩av电影| 欧美v亚洲v综合ⅴ国产v| 欧美午夜精品电影| 91在线小视频| 丁香激情综合五月| 韩国女主播成人在线| 日本视频在线一区| 一区二区三区精品视频| 综合久久国产九一剧情麻豆| 日本一区二区三区久久久久久久久不 | 不卡av在线免费观看| 精品一区二区av| 午夜亚洲国产au精品一区二区| 亚洲欧美日韩在线不卡| 国产精品理论在线观看| 久久久精品天堂| 精品少妇一区二区三区视频免付费 | 不卡欧美aaaaa| 国产高清视频一区| 国产乱码精品一区二区三区五月婷 | 狠狠狠色丁香婷婷综合久久五月| 调教+趴+乳夹+国产+精品| 夜夜爽夜夜爽精品视频| 亚洲免费观看高清完整版在线观看熊 | 免费不卡在线观看| 午夜欧美电影在线观看| 日韩在线一区二区| 首页国产丝袜综合| 日产欧产美韩系列久久99| 日韩国产欧美在线观看| 亚洲国产综合91精品麻豆| 亚洲午夜三级在线| 亚洲h精品动漫在线观看| 午夜精品久久久久久| 午夜欧美大尺度福利影院在线看| 亚洲国产成人av好男人在线观看| 亚洲已满18点击进入久久| 午夜视频在线观看一区二区三区| 天堂一区二区在线| 九九**精品视频免费播放| 久久福利视频一区二区| 国产精品亚洲专一区二区三区 | 精品国产伦一区二区三区观看方式| 欧美一区二区网站| 精品国产91洋老外米糕| 久久先锋影音av鲁色资源网| 国产日韩欧美一区二区三区综合 | 亚洲精品在线免费观看视频| 精品国产sm最大网站| 欧美韩日一区二区三区| 亚洲天堂福利av| 亚洲大片免费看| 麻豆精品在线播放| 国产成人亚洲综合色影视| 97精品电影院| 777久久久精品| 国产三级精品三级在线专区| 亚洲三级在线播放| 日韩综合小视频| 国产精品123| 91啪亚洲精品| 精品久久久久香蕉网| 国产精品伦理一区二区| 一区二区三国产精华液| 久久99久国产精品黄毛片色诱| 大白屁股一区二区视频| 欧美日韩亚洲综合一区| 国产日产欧美一区| 亚洲午夜激情网站| 国产精品一二三区在线| 欧美系列亚洲系列| 欧美国产亚洲另类动漫| 日韩综合一区二区| 成人高清视频在线| 69久久99精品久久久久婷婷 | 亚洲一区在线免费观看| 国内精品嫩模私拍在线| 91浏览器打开| 久久久国产精品麻豆| 五月天精品一区二区三区| 国产91精品久久久久久久网曝门| 在线精品视频免费播放| 国产亚洲精品aa| 水野朝阳av一区二区三区| jvid福利写真一区二区三区| 日韩欧美国产一区在线观看| 亚洲激情校园春色| 国产成人精品亚洲777人妖| 911国产精品| 成人免费一区二区三区在线观看 | 性做久久久久久免费观看| 国产91丝袜在线播放0| 欧美一区二区女人| 一区二区久久久久久| 成人精品在线视频观看| 精品国产91久久久久久久妲己| 亚洲国产日韩a在线播放| 99精品久久久久久| 中文字幕乱码久久午夜不卡| 免费精品99久久国产综合精品| 日本高清视频一区二区| 亚洲国产精品av| 国产传媒日韩欧美成人| 日韩无一区二区| 日韩电影在线看| 欧美日韩免费高清一区色橹橹 | 中文字幕亚洲区| 国内成人免费视频| 欧美电视剧免费全集观看| 石原莉奈在线亚洲三区| 欧美亚洲国产一区二区三区va | 性做久久久久久免费观看欧美| 99久久久国产精品免费蜜臀| 久久婷婷成人综合色| 精品一区二区久久| 精品裸体舞一区二区三区| 免费在线看成人av| 欧美福利视频一区| 天堂久久久久va久久久久| 欧美日韩国产小视频| 五月天婷婷综合| 91麻豆精品91久久久久久清纯| 亚洲免费视频成人| 91久久精品网| 亚洲综合免费观看高清完整版在线 | 欧美精品xxxxbbbb| 日韩精品电影一区亚洲| 国产亚洲成aⅴ人片在线观看| 日本在线播放一区二区三区| 制服丝袜日韩国产| 麻豆91在线观看| 精品国产不卡一区二区三区| 韩国女主播一区| 久久久777精品电影网影网| 处破女av一区二区| 亚洲三级免费观看| 欧美亚洲一区二区三区四区| 香蕉久久夜色精品国产使用方法| 欧美精品v国产精品v日韩精品| 久久国产三级精品| 国产欧美日韩在线视频| jvid福利写真一区二区三区| 亚洲狠狠丁香婷婷综合久久久| 精品视频全国免费看| 老汉av免费一区二区三区| 国产亚洲短视频| 日本福利一区二区| 秋霞午夜鲁丝一区二区老狼| 欧美激情综合五月色丁香| 92国产精品观看| 日本在线不卡视频| 国产精品国产三级国产aⅴ入口|