简单顺序表 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语言实现顺序表简单易懂

  • 2010年06月20日 22:32
  • 1KB
  • 下载

C语言顺序表简单实现

  • 2011年10月25日 21:38
  • 6KB
  • 下载

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
  • 603

C语言用数组1. 简单约瑟夫环问题: N个人,编号从1~N围成一圈,输入一个数T,从1号开始报数,报到T的人出圈;下一人又从1开始报数,下一个报到T的人出圈,输出出圈顺序。 考虑问实现约瑟夫环问题

1. 简单约瑟夫环问题: N个人,编号从1~N围成一圈,输入一个数T,从1号开始报数,报到T的人出圈;下一人又从1开始报数,下一个报到T的人出圈,输出出圈顺序。 考虑问题: 报到T的...
  • xs1997
  • xs1997
  • 2016年12月26日 18:50
  • 1916

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

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

C语言 简单的 顺序表操作

顺序表
  • WX_East
  • WX_East
  • 2016年09月19日 21:52
  • 415

顺序表的实现,C语言

  • 2009年04月28日 13:35
  • 1KB
  • 下载

用C语言写的顺序表的实现

  • 2010年03月23日 13:33
  • 1KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:简单顺序表 C语言实现
举报原因:
原因补充:

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