c++顺序表基本算法代码


#include
#include
using namespace std;
#define MAXLEN 100//定义顺序表的最大长度

/*************顺序表的定义部分*****************/
struct Data{//定义顺序表结点类型
	string key;//节点关键字
	string name;
	int age;
};
struct SLtype{//定义顺序表结构
	Data listData[MAXLEN+1];
	int listLen;
};

/*************顺序表的初始化函数*************/
void SLInit(SLtype*SL){
	SL->listLen=0;
}

/************计算顺序表的长度**********/
int SLLenght(SLtype*SL){
	return(SL->listLen);
}
/*************取顺序表中指定位置元素**************/
Data *SLGetByNum(SLtype*SL,int i){
	if(i<1||i>MAXLEN){
		cout<<"节点选取错误!"<listData[i]);
}
}

/************按照关键字查找节点*************/
Data *SLGetByCom(SLtype*SL,string name){
	int i;
	for(i=1;i<=SL->listLen;i++){
		if(SL->listData[i].name==name){
			return &(SL->listData[i]);
			break;
		}
		else
			return 0;
}
}




/***********插入节点**************/
int SLInsert(SLtype*SL,int i,Data data){
	int j;
	if(SL->listLen>=MAXLEN){
		cout<<"顺序表已满,不能插入节点!"<MAXLEN){
		cout<<"插入序号错误!"<listLen;j>=i;j--)
			SL->listData[j+1]=SL->listData[j];
		SL->listData[i]=data;
		SL->listLen++;
		return 0;
	}
}
/****************删除节点*************/
int SLDelete(SLtype*SL,int i){
	int j;
	if(i<1||i>MAXLEN)
	{
		cout<<"输入删除节点错误!"<listLen;j++)
			SL->listData[j]=SL->listData[j+1];
		SL->listLen--;
		return 0;
	}
}


/*********删除顺序表中从第i个元素起的k个元素*********/
int DeleteSL(SLtype*SL,int i,int k){
	if(i<1||k<0||i+k>SL->listLen+1) return 1;
	else{
		int j;
		int count;
		for(count=1;count<=k;count++)
		{
		for(j=i;jlistData[j]=SL->listData[j+1];
			
		}
		SL->listLen--;
	}
	return 0;
	}
}
/************显示所有的节点***************/
void SLALL(SLtype*SL)
{
	int i;
	for(i=1;i<=SL->listLen;i++)
		cout<<"key:"<listData[i].key<<",name:"<listData[i].name<<",age:"<listData[i].age<listLen>MAXLEN){
		cout<<"顺序表已满,不能再添加节点!"<listData[++SL->listLen]=data;
		return 1;
	}
}
int main()
{
	int i;
	int j;
	SLtype SL;
	Data data;
	Data*pdata;
	cout<<"顺序表操作演示:"<>data.key>>data.name>>data.age;
  if(data.age) {//若年龄不为0
  if(!SLAdd(&SL,data))
	 {
		 cout<<"添加节点失败!"<>i>>j;
	DeleteSL(&SL,i,j);
	SLALL(&SL);

	cout<<"请输入要插入的节点号:"<>i;
	cout<<"请输入要插入的节点:"<>data.key>>data.name>>data.age;
	SLInsert(&SL,i,data);
	SLALL(&SL);

	cout<<"选取顺序表中第i个节点:"<>i;
	pdata=SLGetByNum(&SL,i);
	if(pdata){
		cout<<"key:"<key<<",name:"<name<<",age:"<age<>i;
	SLDelete(&SL,i);
	SLALL(&SL);



	system("pause");
	return 0;
}

你可能感兴趣的:(c++)