算法笔记之栈、队列、链表
来源:互联网 发布:大数据 竞品分析 编辑:程序博客网 时间:2024/04/29 07:10
1, 队列:
基本概念: 队列是一种特殊的线性结构,它只允许在队列的首部(head)进行删除操作(称为出队);而在队列的尾部(tail)进行插入操作(入队)。而当队列中没有元素时(即 head == tail),称为空队列。First In First Out(FIFO)原则
算法应用:队列是广度优先搜索以及队列优化的 Bellman_Ford 最短路算法的核心数据结构。
基本元素:一个数组,两个变量
基本概念: 队列是一种特殊的线性结构,它只允许在队列的首部(head)进行删除操作(称为出队);而在队列的尾部(tail)进行插入操作(入队)。而当队列中没有元素时(即 head == tail),称为空队列。First In First Out(FIFO)原则
算法应用:队列是广度优先搜索以及队列优化的 Bellman_Ford 最短路算法的核心数据结构。
基本元素:一个数组,两个变量
其封装结构休类型:
<span style="white-space:pre"></span>struct queue {int data[100];//队列主体,存储内容int head;//队首索引int tail;//队尾索引};定义结构体变量:struct queue q;
队列操作的简单Damo:
//初始化void init(){}//是否为空队列:返回1为空;int isEmpty() {retrun q.head == q.tail;}//入队列boolean push(int data) {//这里不进行队列满的情况}//实例这里后面再补上
2, 栈:
基本概念:栈限定为只能在一端进行插入和删除操作,是一种后进先出的数据结构。
基本元素: 一个一维数组,一个指向栈顶的变量 top:
int data[100];int top = 0;//实例这里后面再补上
3, 链表:
基本概念:
实现链表: 1,需要使用指针和动态分配内存函数 malloc来实现。
<span style="white-space:pre"></span>#include <stdlib.h>int *p;p = (int *) malloc(sizeof(int)); //int* 以 int 4个字节的连续内存来作为一个整体来存放整数。其封装结构体:
struct node {int data;struct node *next;}
建立链表基本步骤如下:
//头指针的作用是方便以后从头遍历整个链表。 struct node *head; // 头指针初始为空 head = NULL; //创建第一个结点 struct node *p; //动态申请空间 p = (struct node *) malloc (sizeof(struct node)); scanf("%d",a); //将数据存储到当前结点 p->data = a; p->next = NULL; if(head == NULL) {head = p;//保存头结点 }else{q->next = p;//将上一结点的后继指针指向当前结点 } q = p;//导向新结点;
0 0
- 算法笔记之栈、队列、链表
- [算法学习笔记]数据结构之栈和队列
- [笔记]算法复习笔记---栈、队列、链表(上)
- [笔记]算法复习笔记---栈、队列、链表(中)
- [笔记]算法复习笔记---栈、队列、链表(下)
- 数据结构之栈、队列算法
- 算法学习笔记(二)——队列、栈、链表
- 算法学习笔记 第2章 栈、队列、链表
- 算法(第四版)学习笔记之java实现栈和队列(链表实现)
- 栈和队列的数组实现—《算法导论》学习笔记之六
- 《算法导论》学习笔记之Chapter10---队列的数组实现
- 栈和队列算法三之队列的基本操作
- 栈和队列算法四之循环队列
- 数据结构与算法之表、队列、栈
- 算法导论之六栈与队列
- 数据结构与算法之----栈与队列
- 算法02 之栈与队列
- 数据结构与算法之栈和队列
- Eclipse + CodeIgniter 解决PHP函数代码不能自动提示问题
- sql学习
- 使用git把某一次commit修改过的文件打包
- Linux stat --显示文件或文件系统状态
- jQuery插件开发全解析
- 算法笔记之栈、队列、链表
- Vim常用命令总结
- powershell 管理更新AWS安全组
- 用requirements.txt批量安装python库
- 今年七月份之前目标
- C语言运算符
- Flash存储的故事(http://alanwu.blog.51cto.com/3652632/1426457)
- LCM显示异常调试方法
- linux暴力密码破解工具hydra安装与使用