#define _CRT_SECURE_NO_WARNINGS
#define ElementType int
#define MAXSIZE 100
#include<stdio.h>
#include<stdlib.h>
//定义一个顺序表
typedef struct LNode* List;
struct LNode {
ElementType Data[MAXSIZE];
int Last;
};
struct LNode L;
List PtrL;
//建立空的顺序表
List MakeEmpty()
{
PtrL = (List)malloc(sizeof(struct LNode));
PtrL->Last = -1;
return PtrL;
}
//查找元素X并返回其在链表中位值
int Find(ElementType X, List PtrL) {
int i = 0;
/*for (int i = 0; i < MAXSIZE; i++)
{
if (PtrL->Data[i] == X)
{
return i + 1;
break;
}
if (i > PtrL->Last)
return -1;
}
*/
while (i <= PtrL->Last && PtrL->Data[i] != X)
i++;
if (i > PtrL->Last)
return -1;
else return i+1;
}
//在第i个位置插入X
void Insert(ElementType X, int i, List PtrL)
{
int j;
if (PtrL->Last == MAXSIZE) {
printf("表满");
return;
}
if (i<1 || i>PtrL->Last + 2)
{
printf("位置非法 ");
return;
}
for (j = PtrL->Last; j >=i - 1; j--)
{
PtrL->Data[j + 1] = PtrL->Data[j];
}
PtrL->Data[i-1] = X;
PtrL->Last += 1;
}
//删除表中指定位置的元素
void Delete(int i, List PtrL) {
int j;
if (i<1 || i>PtrL->Last)
{
printf("位置非法");
return;
}
for (j = i - 1; j <PtrL-> Last + 1; j++)
{
PtrL->Data[j] = PtrL->Data[j + 1];
}
PtrL->Last--;
return;
}
int main()
{
int N;
scanf("%d", &N);
MakeEmpty();
for (int i = 0; i<N; i++)
{
scanf("%d", &PtrL->Data[i]);
}
PtrL->Last = N;
Insert(5, 4, PtrL);
int s = Find(5, PtrL);
printf("%d", s);
return 0;
}
刚开始数据结构,来csdn做笔记