#include "stdio.h"
#define Maxsize 10
#define OK 1
#define ERROR 0
typedef char eletype;
typedef int Status;
typedef struct{
eletype data[Maxsize];
int length;
}sqlist;
//初始化顺序表
void init_sqlist(sqlist* p)
{
p->length = 0;
}
//顺序表当数组用,就是指定位置先删除后插入,也叫修改。
Status modify_sqlist(sqlist *p, int i, eletype e)
{
if(i < 1 || i > p->length)
{
return ERROR;
}
p->data[i-1] = e;
return OK;
}
//顺序表指定位置插入
Status insert_sqlist(sqlist *p, int i, eletype e)
{
if(i < 1 || i > p->length+1)
{
return ERROR;
}
if(p->length == Maxsize)
{
return ERROR;
}
int k = p->length;
for(k; k >= i; k--)
{
p->data[k] = p->data[k-1];
}
p->data[i-1] = e;
p->length++;
return OK;
}
//顺序表指定位置删除
Status delete_sqlist(sqlist *p, int i)
{
if(i < 1 || i > p->length)
{
return ERROR;
}
int k = i;
for(k; k < p->length; k++)
{
p->data[k-1] = p->data[k];
}
p->length--;
return ERROR;
}
//头插
Status head_insert_sqlist(sqlist *p, eletype e)
{
int a = insert_sqlist(p, 1, e);
return a;
}
//尾插
Status tail_insert_sqlist(sqlist *p, int i, eletype e)
{
int a = insert_sqlist(p, p->length+1, e);
return a;
}
//头删
Status head_delete_sqlist(sqlist *p)
{
int a = delete_sqlist(p, 1);
return a;
}
//尾删
Status tail_delete_sqlist(sqlist *p)
{
int a = delete_sqlist(p, p->length);
return a;
}
//按值查找,返回元素位置,找不到返回0
int find_which_section(sqlist *p, eletype e)
{
int i = 0;
for(i; i < p->length; i++)
{
if(p->data[i] == e)
{
return i+1;
}
}
return ERROR; //can not find
}
int main()
{
return 0;
}
静态顺序表的实现,用Linux里gedit编辑器写的,gcc编译通过。记录下Note
最新推荐文章于 2024-06-11 17:01:33 发布