笔记积累----
#include <stdio.h>
#define maxlen 100
typedef int elemtype;
typedef struct
{
elemtype data[maxlen];
int len;
}sqList;
/* 查找1 元素->位置 [元素,表L]*/
int ListLocate(elemtype f,sqList *sql)
{
for(int i=1;i<=sql->len;i++){
if(sql->data[i]==f)return i;
}
return 0;
}
/* 查找2 位置->元素 [位置,表L]*/
elemtype ListRetrieve(elemtype f,sqList *sql)
{
if(f<1)return 0;
else return sql->data[f];
}
/* 添加*/
void ListInsert(int x,elemtype y,sqList *sql)
{
if( x<1 || x>sql->len )printf("error...");
else{
for(int i=sql->len;i>=x;i--)
sql->data[i+1]=sql->data[i];
sql->data[x]=y;
(sql->len)++;
}
}
/* 删除*/
void ListDelete(int x,sqList *sql)
{
if(sql->len<1 || x>sql->len || x<1)
printf("error...");
else{
for(int i=x;i<sql->len;i++)
sql->data[i]=sql->data[i+1];
(sql->len)--;
}
}
/* 打印*/
void printList(sqList *sql)
{
for(int i=1;i<=sql->len;i++){
printf("%3d",sql->data[i]);
}
printf("\n\n");
}
/*主函数*/
void main()
{
//定义模拟表,长度为8,并输出
sqList a={0,1,2,3,4,5,6,7,8};
a.len=8;
printf("输出原表:");
for(int i=1;i<=a.len;i++)printf("%3d",a.data[i]);
/*查询数据*/
elemtype f1_Element=4 , f2_Element;
int find1=ListLocate(f1_Element,&a) , find2=6;
//调用查找函数1
printf("\n\n查找元素'%d'的位置为:%d\n",f1_Element,find1);
//调用查找函数2
f2_Element=ListRetrieve(find2,&a);
printf("\n查找位置'%d'的元素为:%d\n\n",find2,f2_Element);
//测试打印数据函数 printList(&a);
//调用添加数据函数
elemtype add=10;
printf("在 %d 的位置插入元素 %d >> ",3,add);
ListInsert(3,add,&a);
printList(&a);
//调用删除数据函数
printf("删除位置 %d 位置的元素 >> ",8);
ListDelete(8,&a);
printList(&a);
}