数据结构
狭义:
数据结构是专门研究数据存储的问题
数据的存储包含两方面:个体的存储+个体关系的存储
广义:
数据结构既包括数据的存储也包括数据的操作
对存储数据的操作就是算法
算法
狭义:
算法是和数据的存储方式密切相关
广义:
算法和数据的存储方式无关
这就是泛型思想
数据的存储方式有几种
线性
连续存储【数组】
优点
存取速度很快
缺点
事先需要知道数组的长度
插入删除元素很慢
空间通常有限制
需要大块连续的内存块
离散存储【链表】
优点
空间没有限制
插入删除元素很快
缺点
存取速度很慢
线性结构的应用–栈
线性结构的应用–队列
对于栈的学习
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <stdbool.h>
//定义节点
typedef struct Node
{
int data;
struct Node * pNext;
} NODE, * PNODE;
//定义栈
typedef struct Stack
{
PNODE pTop;
PNODE pBottom;
} STACK, * PSTACK;
//声明函数
void init(PSTACK);
void push(PSTACK,int);
bool empty(PSTACK);
void traverse(PSTACK);
bool pop(PSTACK);
void clear(PSTACK);
//主函数
int main(void)
{
STACK S;
int val;
/*测试初始化栈及压栈函数*/
init(&am