python整数顺序表的基本运算程序
//1、定义顺序表的储存结构
typedefstruct
{
//用数组存储线性表中的元素
intdata[100];
//顺序表中的元素个数
intlength;
}Sequence_table,*p_Sequence_table;
//2、顺序表的初始化,
voidinitSequenceTable(p_Sequence_tableT)
{
//判断传过来的表是否为空,为空直接退出
if(T==NULL)
{
return;
}
//设置默认长度为0
T->length=0;
}
//3、求顺序表的长度
intlengthOfSequenceTable(p_Sequence_tableT)
{
if(T==NULL)
{
return0;
}
returnT->length;
}
//4、判断顺序表是否已满
intisFull(p_Sequence_tableT)
{
if(T->length>=100)
{
printf("该顺序表已经装满,无法再添加元素");
return1;
}
return0;
}
//5、按序号查
intselectSequenceTableByIndex(p_Sequence_tableT,intindex)
{
if(index>=0&&index<=T->length-1)
{
returnT->data[index];
}
printf("你输入的序号不对,请重新输入
");
return0;
}
//6、按内容查是否存在
voidselectSequenceTableByNum(p_Sequence_tableT,intnum)
{
intisContain=0;
for(inti=0;i<T->length;i++)
{
if(T->data[i]==num)
{
isContain=1;
printf("你要的元素的下标是:%d
",i);
}
}
if(isContain==0)
{
printf("没有到你要的数据
");
}
}
//7、添加元素(在队尾添加)
voidaddNumber(p_Sequence_tableT,intnum)
{
//顺序表还没有满的时候
if(isFull(T)==0)
{
T->data[T->length]=num;
T->length++;
}
python printf输出格式}
//8、顺序表的遍历
voidprintAllNumOfSequenceTable(p_Sequence_tableT)
{
for(inti=0;i<T->length;i++)
{
printf("T[%d]=%d",i,T->data[i]);
}
printf("
");
}
//9、插入操作
intinsertNumByIndex(p_Sequence_tableT,intnum,intindex)
{
if(index<0||index>T->length)
{
return0;
}
T->length++;
for(inti=T->length-1;i>index;i--)
{
inttemp=T->data[i];
T->data[i]=T->data[i-1];
T->data[i-1]=temp;
}
T->data[index]=num;
return1;
}
//10、删除元素
voiddelectNum(p_Sequence_tableT,intindex)
{
if(T->length<=0)
{
printf("该顺序表中没有数据,不用删除");
}
for(inti=index;i<T->length-1;i++)
{
inttemp=T->data[i];
T->data[i]=T->data[i+1];
T->data[i+1]=temp;
}
T->data[T->length-1]=0;
T->length--;
}
intmain(intargc,constchar*argv[]){
//创建顺序表的结构体
Sequence_tableseq_t;
//初始化
initSequenceTable(&seq_t);
//添加数据
addNumber(&seq_t,1);
addNumber(&seq_t,2);
addNumber(&seq_t,3);
//打印验证
printAllNumOfSequenceTable(&seq_t);
//根据索引下标查内容
intnum=selectSequenceTableByIndex(&seq_t,2);
printf("你查的数据是:%d
",num);
//插入
insertNumByIndex(&seq_t,4,1);
printAllNumOfSequenceTable(&seq_t);
//根据内容查下标
selectSequenceTableByNum(&seq_t,4);
//根据下标删除数据
delectNum(&seq_t,1);
printAllNumOfSequenceTable(&seq_t);
return0;
}