# 线性表的顺序存储结构

[web@localhost d2]\$ gcc --version
gcc (GCC) 4.4.4 20100726 (Red Hat 4.4.4-13)

Copyright (C) 2010 Free Software Foundation, Inc.

#include <stdlib.h>
#include <stdio.h>
#include <stdbool.h>

#define MAXSIZE 50

struct node{
int data[MAXSIZE];
int length;
};

typedef struct node SeqList;

void SeqListInit(SeqList *L){
L->length=0;
}
int SeqListLength(SeqList *L){
return L->length;
}
int SeqListGet(SeqList *L,int i){
if(i>=1 && i<=L->length){
return L->data[i-1];
}else{
printf("i is not valiue");
exit(0);
}
}
int SeqListLocate(SeqList *L,int i){
if(L->length==0) return -1;
int j;
for(j=0;j<L->length;j++){
if(L->data[j]==i) return j+1;
}
return -1;
}
int SeqListPrior(SeqList *L,int i){
int j;
j=SeqListLocate(L,i);
if(j>1){
return SeqListGet(L,j-1);
}else{
return -1;
}
}
int SeqListNrior(SeqList *L,int i){
int j,r;
j=SeqListLocate(L,i);
r=(j>0 && j<L->length)?SeqListGet(L,j+1):-1;
return r;
}
void SeqListInsert(SeqList *L,int i,int j){
if(j<MAXSIZE && j>0){
int h;
for(h=L->length-1;h>=j-1;h--){
L->data[h+1]=L->data[h];
}
if(L->data[j-1]=i){
L->length++;
}
}
}
void SeqListDel(SeqList *L,int i){
if(i>0 && L->length>0 && i<=L->length){
int h;
for(h=i-1;h<L->length;h++){
L->data[h]=L->data[h+1];
}
L->length--;
}
}
bool SeqListIsEmpty(SeqList *L){
bool r;
r=L->length>0?false:true;
return r;
}
void SeqListEmpty(SeqList *L){
L->length=0;
}
void SeqListTraverse(SeqList *L){
int h=1;
char *l;
for(h;h<=L->length;h++){
l=h==L->length?"":"->";
}
}
void main(){
SeqList *L;
L=(SeqList *)malloc(sizeof(SeqList));
printf("init:");
SeqListInit(L);
printf("L\n");
printf("length:%d\n",L->length);
SeqListInsert(L,1,1);
printf("length:%d\n",L->length);
SeqListInsert(L,2,2);
SeqListInsert(L,3,3);
SeqListInsert(L,4,4);
SeqListTraverse(L);
SeqListInsert(L,5,1);
printf("\n");
SeqListTraverse(L);
printf("\n");
printf("the last value of %d\n",SeqListPrior(L,1));
printf("the last value of %d\n",SeqListPrior(L,5));
printf("the next value of %d\n",SeqListNrior(L,3));
printf("the next value of %d\n",SeqListNrior(L,4));
printf("is L empty ?%d\n",SeqListIsEmpty(L));
SeqListDel(L,1);
printf("is L empty ?%d\n",SeqListIsEmpty(L));
SeqListDel(L,1);
printf("is L empty ?%d\n",SeqListIsEmpty(L));
SeqListDel(L,1);
printf("is L empty ?%d\n",SeqListIsEmpty(L));
SeqListDel(L,1);
printf("is L empty ?%d\n",SeqListIsEmpty(L));
SeqListDel(L,1);
printf("is L empty ?%d\n",SeqListIsEmpty(L));
}


• 本文已收录于以下专栏：

## 线性表顺序存储结构完整可执行代码

• cckevincyh
• 2015年05月09日 21:53
• 3659

## 数据结构---线性表----顺序存储结构

1.线性表定义         线性表（LIST）：零个或多个数据元素的有限序列。    关键知识点：         1.首先它是一个序列，元素之间室友顺序的；         2.线性表强调的是有...
• sinat_22055459
• 2016年03月18日 14:12
• 5959

## 线性表的顺序存储结构及该结构的插入与删除

• J_1234567890
• 2016年05月06日 10:52
• 3627

## C++ 线性表顺序存储结构的实现

• jihao0919
• 2016年09月23日 00:39
• 433

## 线性表顺序存储结构的c语言实现

• wxwd1
• 2014年05月13日 13:29
• 1386

## 线性表的顺序存储结构（查找、插入、删除等）

#include #include #define LIST_INIT_SIZE 100//线性表存储空间的初始化分配量 #define LISTINCREMENT 10//线性表存储空间的分配增...
• IT00544
• 2016年07月30日 19:49
• 410

## 线性表（静态顺序存储结构）c语言描述

#include #define MAXSIZE 50typedef int ElemType;typedef struct{ ElemType list[MAXSIZE]; int size;}Li...
• laobai0335
• 2009年06月10日 11:24
• 1047

## 01.线性表.顺序存储结构（静态数组）

• hyde100
• 2016年07月07日 11:35
• 365

## 线性表_顺序存储结构和链式存储结构的优缺点比较（区别）

• fengxiao8
• 2017年12月01日 21:43
• 466

## C++ 线性表顺序存储结构

• LLLCSDN
• 2015年12月09日 15:16
• 2256

举报原因： 您举报文章：线性表的顺序存储结构 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)