线性表的顺序存储结构

原创 2012年03月24日 14:48:36
[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?"":"->";
		printf("addr[%X]value[%d]%s",&L->data[h-1],L->data[h-1],l);
	}
}
void main(){
	SeqList *L;
	L=(SeqList *)malloc(sizeof(SeqList));	
	printf("init:");
	SeqListInit(L);
	printf("L\n");
	printf("length:%d\n",L->length);
	printf("add iterm 1\n");
	SeqListInsert(L,1,1);
	printf("length:%d\n",L->length);
	printf("add iterm 2\n");
	SeqListInsert(L,2,2);
	printf("add iterm 3\n");
	SeqListInsert(L,3,3);
	printf("add iterm 4\n");
	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
  • cckevincyh
  • 2015年05月09日 21:53
  • 3659

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

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

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

顺序存储定义线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。 顺序存储方式 线性表的顺序存储结构,就是在内存中找了块地儿,通过站位的形式,把一定内存空间给占了,...
  • J_1234567890
  • J_1234567890
  • 2016年05月06日 10:52
  • 3627

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

线性表顺序存储实现元素的插入,删除和读取
  • jihao0919
  • jihao0919
  • 2016年09月23日 00:39
  • 433

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

ADT 线性表(List) Data 线性表的数据对象集合为{a1,a2,…,an},每个元素的类型均为DataType。 其中,除第一个元素a1外,每一个元素有且只有一个直接前驱...
  • wxwd1
  • wxwd1
  • 2014年05月13日 13:29
  • 1386

线性表的顺序存储结构(查找、插入、删除等)

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

线性表(静态顺序存储结构)c语言描述

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

01.线性表.顺序存储结构(静态数组)

最近在重新温习数据结构的知识,根据资料及自己的理解使用C语言编写调试了以下的代码, 以下为第一篇“线性表顺序存储结构”,利用数组实现。 #include #define MAXSIZE 15//符...
  • hyde100
  • hyde100
  • 2016年07月07日 11:35
  • 365

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

线性表的定义: 线性表(Linear List)是由n(n≥0)个数据元素(结点)a[0],a[1],a[2]…,a[n-1]组成的有限序列。 其中: 数据元素的个数n定义为表的长度 = “lis...
  • fengxiao8
  • fengxiao8
  • 2017年12月01日 21:43
  • 466

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

随着逐渐学习,更深入的体会了C是面向过程,C++是面向对象这一说法。下面的代码用类封装了一个顺序存储的线性表,仅供参考,有错误请指教,毕竟新手。 将元素类型定义为别名,可以方便更改。对于顺序表,最基...
  • LLLCSDN
  • LLLCSDN
  • 2015年12月09日 15:16
  • 2256
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:线性表的顺序存储结构
举报原因:
原因补充:

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