线性表是最基本、最简单的、也是很常用的一种数据结构。线性表中数据元素的关系式一对一的

   关系,即是除了第一个和最后一个数据元素之外,其他数据元素都是首尾相接的。在实际中使用也是

   较为广泛的,接下来用顺序实现方式简单的对其进行一下模拟。

           源代码如下:

/**   @author Kiritor     顺序线性表的演示 */  #include "stdafx.h" #include<stdlib.h> #include<conio.h> #define LIST_INIT_SIZE 100 #define LIST_INCREMENT 10 #include<malloc.h> #define OK 1 #define OVERFLOW 0 typedef struct  {     int * element;//存储空间的基址     int length;//当前线性表的长度     int size ;//线性表的容量  }SqList;  /*初始化线性表*/ int init_SqList(SqList & l) {      l.element = (int *)malloc(LIST_INIT_SIZE*sizeof(int));//分配地址空间,线性表的总共的容量情况 	 if(!l.element) 	 { 	    exit(OVERFLOW);//分配失败则退出程序 	 } 	 l.length=0; 	 l.size=LIST_INCREMENT;//线性表的初始容量 	 printf("%s\n","初始化线性表成功!"); 	 return OK; } /*输出线性表的内容*/ void print_SqList(SqList &l) {  	int i=0; 	printf("%s\n","线性表内容:"); 	for(i=0;i<l.length;i++) 	{  		printf("%d \n",*(l.element+i)); 	} } /*插入数据到线性表  i表示在第i个位置前面进行插入  i从1开始*/ int insert_SqList(SqList &l,int i,int element) { 	if(i<1||i>l.length+1) 		return OVERFLOW; 	if(l.length>=l.size) 	{ 		//存储空间已满,重新进行分配 		int * newbase = (int *)realloc(l.element,(l.size+LIST_INCREMENT)*sizeof(int)); 		l.element = newbase; 		l.size += LIST_INCREMENT; 	} 	//开始进行插入的操作 	int *q = &(l.element[i-1]);//q为需要插入的位置 	int *p; 	for(p=&(l.element[l.length-1]);p>=q;p--) 	{ 		*(p+1)=*p; 	} 	*q  = element; 	l.length++; 	printf("%s%d\n","线性表插入",element); 	return OK; 		  } /*删除线性表的某个位置的元素 i表示要删除的元素的位置从1开始 element用来存放删除的元素*/ int delete_SqList(SqList &l,int i,int & element) { 	if(i<1||i>l.length) 	{ 		return OVERFLOW; 	} 	int *p= &(l.element[i-1]); 	element=*p;//将要删除的元素放入emlement中 	printf("删除的元素是:%d\n",element); 	int *q=l.element+l.length-1; 	for(++p;p<=q;p++) 	{ 		*(p-1)=*p;//后面的元素往前面移动 	} 	l.length--; 	return OK; } int main(int argc, _TCHAR* argv[]) {   SqList l;     int emlement=0; 	init_SqList(l); 	insert_SqList(l,1,123); 	insert_SqList(l,1,321); 	insert_SqList(l,2,231); 	print_SqList(l); 	delete_SqList(l,2,emlement); 	print_SqList(l); 	_getch(); 	 	return 0; } 
          看一下结果图:

              线性表--顺序实现方式_线性表

                以上就是线性表的顺序实现方式了,通过上述的代码实现可以看出的是线性表顺序存储结构的特点

         是逻辑上相连的两个元素在实际的物理地址上也是相邻的。因此对于其每个元素的存储位置的表示具有

         规律性、公式性。也就造成了其元素的读取十分方便,但是若要进行元素的删除,插入则需要移动大量

         的元素,这也是顺序实现的线性表的缺点吧。

                 后续会对其链式实现方式及其特点做些总结。Over!