数据结构线性表之顺序表

/*
 * SqList.cpp
 *
 *  Created on: 2015年4月20日
 *      Author: Administrator
 *      数据结构源代码之线性表——顺序表类
 */
#include<iostream>

using namespace std;
const int maxlen = 100;

struct TsqList{
	char elem[maxlen];//长度为maxlen的字符型数组elem
	int curlen;//线性表当前长度
};

int location(TsqList myTsqList, char el){//求顺序表myTsqList中el元素的为序,若找到,则返回其位序;若无,则返回0;
	int i = 0;
	while( i < myTsqList.curlen && myTsqList.elem[i] != el){
		i++;
	}
	if(i < myTsqList.curlen){
		return (i+1);
	}else{
		return 0;
	}
}

bool insert(TsqList myTsqList, int location, char el){//将元素el插入线性表myTsqList的Location位置,若成功,返回true,否则返回false
	int i = 0;
	if(location < 1 || location > (myTsqList.curlen + 1) || (myTsqList.curlen == maxlen)){
		return false;
	}else{
		myTsqList.curlen++;
		for(i = myTsqList.curlen - 1; i >= location; i--){
			myTsqList.elem[i] = myTsqList.elem[i - 1];
		}
		myTsqList.elem[location-1] = el;
		return true;
	}
}

char dele(TsqList myTsqList, int location){//在线性表中删除第location号元素。若成功,返回该元素,否则返回NULL
	int i = 0;
	char element;
	if(location < 1|| location > myTsqList.curlen){
		return NULL;
	}else{
		element = myTsqList.elem[location-1];
		for(i = location; i < myTsqList.curlen; i++){
			myTsqList.elem[i-1] = myTsqList.elem[i];
		}
		myTsqList.curlen--;
		return element;
	}
}

int main(){//test

	TsqList myTsqList;
	TsqList *p = &myTsqList;

	int i;
	for(i = 0; i < 5; i++){
		cin>>(*p).elem[i];
	}
	(*p).curlen = 5;

cout<<location((*p), 'b')<<endl;

insert((*p), 3, 'k');
for(i = 0; i < (*p).curlen; i++){
	cout<<(*p).elem[i]<<" ";
}

	cout<<endl;

cout<<dele((*p), 3)<<endl;
for(i = 0; i < (*p).curlen; i++){
	cout<<(*p).elem[i]<<" ";
}
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值