简单顺序表 C语言实现

原创 2007年09月12日 20:22:00

顺序表是以数组为存储结构的线性表。由于数组中各元素的地址是可计算的,所以查找定位操作 有很高的执行效率。但是这种顺序存储结构的缺点也相当明显,要获得连续的内存空间就必须一次性申请,而在程序执行之前往往无法精确得到所需空间的大小。这时通常先确定一个合适的数组长度,如果后来空间不够,再重新申请一个更大的空间并把原先空间的数据转移过来。可以预见到,如果数据庞大的话,这个转移操作是相当耗费资源的。所以顺序表往往用在一些经常查找却很少改动的数据上。

这里写的是一个简单的线性表,数据空间是一定的,不能动态增加,完善的版本稍后用C++写 ^_^
可变长度 顺序表 C++实现

 

/* SeqList.h
 * Coding by nyzhl 
*/

#define TRUE 1
#define FALSE 0
#define MAX_SIZE 20

typedef 
int ElemType;
typedef 
struct {
    ElemType data[MAX_SIZE];
    
int last;
}
SeqList;

void InitList(SeqList *sl) {
    sl
->last = -1;
}



int EmptyList(SeqList *sl) {
    
return sl->last == -1;
}


int FullList(SeqList *sl) {
    
return sl->last == MAX_SIZE-1;
}


int Locate(SeqList *sl, ElemType elem) {
    
for(int i=0; i<=sl->last; i++
        
if(sl->data[i] == elem) return i;
    
return -1;
}


int GetData(SeqList *sl, int index, ElemType *elem) {
    
if(index<0 || index>sl->last) return FALSE;
    
*elem = sl->data[index];
    
return TRUE;
}


int InsertList(SeqList *sl, int index, ElemType elem) {
    
if(index<0 || index>sl->last+1return FALSE;
    
if(FullList(sl)) return FALSE;
    
for(int i=sl->last; i>=index; i--)
        sl
->data[i+1= sl->data[i];
    sl
->data[index] = elem;
    sl
->last ++;
    
return TRUE;
}


int DelList(SeqList *sl,int index, ElemType *elem) {
    
if(index<0 || index>sl->last) return FALSE;
    
*elem = sl->data[index];
    
for(int i=index; i<sl->last; i++)
        sl
->data[i] = sl->data[i+1];
    sl
->last --;
    
return TRUE;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C语言顺序表简单实现

C语言:动态顺序表的简单实现

动态顺序表的实现: 头文件 SeqList.h#ifndef __SeqList__ #define __SeqList__ #include #include #include #...

C语言顺序表的简单实现

今天刚学了数据结构,老师教的我是云里雾里的,晚上回来自己又教程视频,不管怎么说算是简单的实现了顺序表的一些简单功能。   顺序表里的难点有向顺序表里插入元素,删除元素,查询元素位置这几个函数比较难写,...

C语言实现简单顺序栈

//SeqStack.h #ifndef SEQSTACK_H #define SEQSTACK_H #include #include #define STACK_INIT_SIZE 100...
  • QZFZZ
  • QZFZZ
  • 2013-07-08 17:39
  • 578

【顺序表】用c语言简单实现顺序表

今天,写了一个简单的顺序表,跟大家分享一下(我是先写的静态,后改的动态,中间的一些注释是原来的静态):test.h #ifndef __SEPLIST_H__ #define __SEPLIST_...

C语言 简单的 顺序表操作

顺序表

顺序表的实现,C语言

线性表之顺序存储结构(C语言动态数组实现)

线性表的定义:N个数据元素的有限序列 线性表从存储结构上分为:顺序存储结构(数组)和 链式存储结构(链表) 顺序存储结构:是用一段连续的内存空间存储表中的数据 L=(a1,a2,a3….an)链式...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)