数据结构和算法是计算机科学的基础和灵魂,对于程序员来说,其重要不言而喻!
它是每一个程序员的必须具备的内功,还记得那个经典的公式吗?
程序=数据结构+算法
一语道出了程序的本质.
由于考研,对数据结构和算法好好学了一遍,领会到不少东西,对我编程能力和算法
设计能力是一个极大的提高.现在考完研了,我整理了一下,希望对要考研的能有所
帮助,其中的程序全是根据<<数据结构>>(严蔚敏)一书在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;
}