数据结构C语言版:线性表之顺序栈

栈是一种特殊的线性表
栈是一种数据结构,是只能在某一端插入和删除的特殊线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。
栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶 (top),另一端为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。插入一般称为进栈(PUSH),删除则称为退栈(POP)。 栈也称为后进先出表(LIFO–Last IN First Out表)。 Continue reading

数据结构C语言版:线性表之顺序表

线性表是一个线性结构。线性表采用顺序存储的方式

存储就称为顺序表。那么定义一种数据结构就是要描术出数据的逻辑结构、存储结构和运算集合。存储结构是一个结构体,运算集合包括:初始化、

插、删、改、打印、搜索等。顺序表的类型描述如下:
ADT sequence_list{
数据集合 K: K={k(1), k(2), …,k(n)}, n >=0, K中的地素是datatype类型;
数据关系 R: R={r}
r={ | i=1, 2, …, n-1}
操作集合:
(1) void init(sequence_list *slt);顺序表的初始化—置空表
(2) void append(sequence_list *slt, datatype x); 在顺序表后部插入值为x的结点
(3) void display(sequence_list slt);打印顺序表的各结点值
(4) int empty(sequence_list slt);判断顺序表是否为空
(5) int find(sequence_list slt, datatype x);查找顺序表中值为x的结点位置
(6) datatype get(sequence_list slt, int i);取得顺序表中第i个结点的值
(7) void insert(sequence_list *slt, datatype x, int position);在顺序表的postion位置插入值为x的结点
(8) void dele(sequence_list *slt, int position);删除表中第position位置的结点
}ADT sequence_list;
下面用C代码实现:
Continue reading

算法第2天:基本数据结构—栈

线性表是最基本、最简单、也是最常用的一种数据结构。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。线性表的逻辑结构简单,便于实现和操作。因此,线性表这种数据结构在实际应用中是广泛采用的一种数据结构。

在实际应用中,线性表都是以栈、队列、字符串、数组等特殊线性表的形式来使用的。 Continue reading