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

📄 sqlist.h

📁 一些数据结构的基本实验的解法,和实用哦,欢迎借鉴,交流
💻 H
字号:
#include "iostream.h"

const OK=1;
const ERROR=0;
const TRUE=1;
const FALSE=0;
const OVERFLOW=-1;
const UNDERFLOW=-2;
const MAXSIZE=10;
	
typedef struct{
	int *elem;
	int len;
	int listsize;
}sqlist;			
void Initlist_sq(sqlist &L,int maxsize=MAXSIZE)
//按需动态分配一个存储区域,设其当前长度为0;初始化操作
{	
	L.elem=new int[maxsize];
	L.len=0;
	L.listsize=maxsize;
}			//初始化线性表

void create_sq(sqlist &L)
{
	int i=1,x;
	L.elem=new int[MAXSIZE];
	L.len=0;
	L.listsize=MAXSIZE;
	cin>>x;
	while(x!=0){
		
		L.elem[i++]=x;
		++L.len;
		cin>>x;
		if(L.len>L.listsize) cout<<"表已满!"<<endl;
		}
}
int Listlength_sq(sqlist &L)
{	return L.len; }				//求线性表的长度

int GetElem_sq(sqlist L,int i,int e)
{
	if(i<1||i>L.len)	return ERROR;
	else 
	{	e=L.elem[i];return e;	}		//取线性表的元素
}

int PirorElem_sq(sqlist L,int i)
{
	if(i<=1||i>L.len)	return ERROR;
	else return L.elem[i-1];	//取前驱
}

int NextElem_sq(sqlist L,int i)
{
	if(i<1||i>=L.len)	return ERROR;
	else return L.elem[i+1];		//取后继
}

int LocateElem_sq(sqlist L,int e)
{
	int i=1;
	int *p=L.elem;
	while(i<=L.len && *p++!=e)	++i;
	if(i<=L.len)	return  i;
	else return 0;
	/*for(int i=0;i<L.len;i++)
		if(L.elem[i]==e) return i+1;
	return 0;*/			//查找线性表中元素的位置

}

int ListInsert_sq(sqlist &L, int i,int e)
{
	if(i<1||i>L.len+1) return ERROR;
	if(L.len>=MAXSIZE) return OVERFLOW;
	for(int j=L.len-1;j>i;--j)
		L.elem[j+1]=L.elem[j];
	L.elem[i-1]=e;
	++L.len;
	return OK;					//在线性表中插入元素
}
 

int ListDelete_sq(sqlist &L,int i)
{
	if(i<1||i>L.len) return ERROR;
	if(L.len==0) return UNDERFLOW;
	for(int j=i;j<L.len;++j)
		L.elem[j-1]=L.elem[j];
	--L.len;
	return OK;					//删除线性表的元素

}

void ListEmpty_sq(sqlist L)
{	if(L.len==0) cout<<"此线性表为空!";
	else cout<<"此线性表不为空!";			//判定线性表是否为空
}	

void ClearList_sq(sqlist &L)
{
	delete[]L.elem;
	L.len=0;
	L.listsize=0;//将线性表置空
}

PrintElem_sq(sqlist &L)
{
	for(int i=1;i<=L.len;i++)
		cout<<L.elem[i]<<'\n';
	cout<<endl;}

/*void DelExtralNOde(sqlist &L)
{
	L_len=Listlength_sq(L);i=1;
	while(i<=L_len)
	j=i+1;aj=Getelem(L,j);
	if(aj!=ai) }*/

⌨️ 快捷键说明

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