数据结构与算法系列---顺序表
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;
}
它是每一个程序员的必须具备的内功,还记得那个经典的公式吗?
程序=数据结构+算法
一语道出了程序的本质.
由于考研,对数据结构和算法好好学了一遍,领会到不少东西,对我编程能力和算法
设计能力是一个极大的提高.现在考完研了,我整理了一下,希望对要考研的能有所
帮助,其中的程序全是根据<<数据结构>>(严蔚敏)一书在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;
}
相关文章推荐
- 位运算符和位运算
- 系统V共享内存详解
- Pku acm 2075 Tangled in Cables数据结构题目解题报告(十一)最小生成树:prim算法&amp;amp;二叉查找树
- Windows GDI(转)
- UNIX下的信号问题
- DJL语言标准--第二章:命令
- DJL语言标准--第一章:节点--(3)
- Trac - Trac Database Schema - 数据结构
- Java数据结构之B树(二叉搜索树)
- Java数据结构温习之双向双端链表
- Java数据结构温习之哈希表-链地址法
- 数据结构之图的邻接矩阵
- 数据结构代码程序
- 数据结构与算法分析(C语言描述)源代码与答案
- 基本数据结构和php内置函数(转摘)
- TRIE树
- 一种五子棋算法
- 背包问题优先队列分枝限界算法
- N皇后问题求解算法
- 数据结构:堆