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

数据结构与算法系列---顺序表

2008-04-01 11:47 344 查看
数据结构和算法是计算机科学的基础和灵魂,对于程序员来说,其重要不言而喻!
它是每一个程序员的必须具备的内功,还记得那个经典的公式吗?
程序=数据结构+算法
一语道出了程序的本质.

由于考研,对数据结构和算法好好学了一遍,领会到不少东西,对我编程能力和算法
设计能力是一个极大的提高.现在考完研了,我整理了一下,希望对要考研的能有所
帮助,其中的程序全是根据<<数据结构>>(严蔚敏)一书在visual c++ 6.0调试的.

以下是顺序表的实现代码:


#define LIST_INIT_SIZE 100


#define LISTINCREMENT 10


#define OK 0


#define ERROR 1


#define OVERFLOW -2


typedef int ElemType;




typedef struct SqList




...{


ElemType *elem;


int length;


int size;


}SqlList;




//初始化


int init_sq(SqList *L)




...{


L->elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));


if(!L->elem)


return ERROR;


L->length=0;


L->size=LIST_INIT_SIZE;


return OK;


}


//插入一个元素


int insert_sq(SqList *L,int i,ElemType e)




...{


int j=0;


if(i<1||i>L->length)


return ERROR;


if(L->length>=L->size)




...{


ElemType *newbase=(ElemType *)realloc(L->elem,(L->size+LISTINCREMENT)*sizeof(ElemType));


if(!newbase)


return OVERFLOW;


L->elem=newbase;


L->size+=LISTINCREMENT;


}


for(j=L->length;j>=i;j--)


L->elem[j+1]=L->elem[j];


L->elem[i]=e;


L->length++;


return OK;


}


//输出顺序表


void display(SqList L)




...{


for(int i=1;i<=L.length;i++)


printf("%d ,",L.elem[i]);


}




int main(int argc,char *argv[])




...{


SqList L;




int array[9]=...{0,4,12,3,11,5,16,-1,-9};


display(L);


return OK;


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: