您的位置:首页 > 理论基础 > 数据结构算法

数据结构与算法——线性表(一)

2016-09-11 00:03 295 查看
#include <stdio.h>
#include <stdlib.h>
#define LIST_INIT_SIZE 200
#define LISTINCREASE 10
#define ERROR 0
#define OK 1
typedef int Elemtype;
typedef int Status;
typedef struct
{
Elemtype *elem;//存储的基址
int length;
int listsize;//当前分配的存储容量
}SqList;

/************************************************************************/
/*创建一个空的线性表
*/
/************************************************************************/
Status InitList(SqList &L){

L.elem=(Elemtype *)malloc(LIST_INIT_SIZE*sizeof(Elemtype));
if(!L.elem) return ERROR;
L.length=0;
L.listsize=LIST_INIT_SIZE;
return OK;
}

/************************************************************************/
/* 打印list
*/
/************************************************************************/
void PrintList(SqList L){
printf("当前值:");
for (int i =0; i<L.length;i++) {
printf("%d  ", L.elem[i]); // L.elem为首地址
}
printf("\r\n");
}

/************************************************************************/
/* 获取第i个位置的元素,返回给e
*/
/************************************************************************/
Status GetElem(SqList L,int i,Elemtype &e){
if(L.length==0||i<1||i>L.length)
{
return ERROR;
}
e=L.elem[i-1];
return OK;
}

/************************************************************************/
/* 在第i个位置插入e
*/
/************************************************************************/
Status InsertList(SqList &L,int i,Elemtype e)
{
if(i<1||i>L.length+1) return ERROR;
Elemtype *p,*q;
q=&(L.elem[i-1]);
for(p=&(L.elem[L.length-1]);p>=q;--p)
{
*(p+1)=*p;
}
*q=e;
++L.length;
return OK;

}

int main(){
SqList L;
InitList(L);
int i=1;
int data[6] = {2,3,4,5,6,8};
for (i=1; i<6;i++)
InsertList(L,i,data[i-1]);
PrintList(L);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据结构 算法