#include <stdio.h>
#include <stdlib.h>
//创建结构体变量
typedef struct {
int* data;
int length;
}List;
//创建顺序表
void Init(List* p){
p->length = 0;
p->data = (int*)malloc(sizeof(int)*(p->length));
}
//求表长
int Length(List *p){
return p->length;
}
//插入
int Insert(List* p, int k, int x){
int i;
if(p->length){
if(k > 0 && k <= p->length) {
for (i = p->length; i >= k; i--)
p->data[i] = p->data[i - 1];
p->data[k-1] = x;
p->length++;
return 1;
}
else
return -1;
}
else{
if(k == 1) {
p->data[0] = x;
p->length++;
return 1;
}
else
return -1;
}
}
//删除
int Delet(List* p, int k, int* px) {
int i;
if (p->length) {
if (k > 0 && k <= p->length) {
*px = p->data[k - 1];
for (i = k; i < p->length; i++)
p->data[i - 1] = p->data[i];
p->length--;
return 1;
}
else
return -1;
}
else
return -1;
}
//按值查找
int Find_1(List* p, int x){
int i,flag=-1;
if(p->length){
for(i=0;i<p->length;i++)
if(p->data[i] == x)
flag = i+1;
return flag;
}
else
return flag;
}
//按位查找
int Find_2(List* p, int k){
if(p->length){
if(k>0 && k<=p->length)
return p->data[k-1];
else
return -1;
}
else
return -1;
}
//输出顺序表
void Print(List* p){
int i;
for(i=0;i<p->length;i++)
printf("%d\n",p->data[i]);
}
顺序表
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 学习数据结构(Java版)发现的一些知识点 顺序表 首先线性表是由n(n >= 0)个类型相同的数据元素组成的有限...
- 前言 在记录八 线性表的顺序存储结构中,我们了解了顺序存储结构的优缺点。我们注意到,其固定的静态特性对于日常来说特...
- 通过第六篇文章的学习我们知道,线性表分为顺序存储和连式存储两种结构,他们各自有自己的存储特点,在使用上也不同。今天...