![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
一缕轻烟拂过
生命不息,奋斗不止
展开
-
线性表的顺序存储结构(C语言实现)
最近在研究数据结构,看了好多数据结构方面的书,但好多书都是用的伪代码实现,对初学者或者语言功底不深厚的同学来说很不友好,也有好多书说是用C语言实现,但应用了c++的东西,比如c++中的引用,导致代码晦涩难懂。学数据结构不能只是看书,一定要将各种结构用代码实现,我也将各个部分实现的代码贴出来。首先是线性表的顺序存储结构#include<stdio.h>#include<stdlib.h>#de原创 2017-10-08 15:10:28 · 2787 阅读 · 1 评论 -
栈的顺序存储结构C语言
栈是一种先入后出的数据结构,应用也非常广泛,例如在电脑中文件管理里,点击进入多层文件里,然后点返回键,又能回到原处。双击进入相当于入栈,返回相当于出栈,返回时只能返回到当前级的上一级。栈的存储结构与链表一样,有顺序存储结构和链式存储结构,先来谈一谈顺序存储结构,可以用数组来实现顺序栈,数组下标为0的一端为栈底,再定义一个变量top,用来指向栈顶元素。所以top的值必须小于数组的长度,数组的第一个下原创 2017-11-06 23:38:15 · 477 阅读 · 0 评论 -
线性表的链式存储结构(C语言实现)
由于线性表的顺序存储结构在进行插入与删除是要移动大量的元素,会耗费大量的时间,线性表的链式存储结构就完美的解决了这个问题。 首先是单链表的创建,有头插法和尾插法。头插法:/* 随机产生n个元素的值,建立带表头结点的单链线性表L(头插法) */void CreateListHead(LinkList *L, int n) { LinkList p; int i;原创 2017-10-29 23:11:40 · 2546 阅读 · 0 评论 -
栈的应用之后缀表达式的求值
运算符号在两数字中间的称为中缀表达式,如5+9,4*9+6等,我们平时计算一般都是用中缀 表达式。运算符号在两数字后面的称为后缀表达式,如59-,46*6+,与前两个中缀表达式作用相同。用栈实现后缀表达式的求值的基本思想就是先初始化一个空栈,然后输入字符串,遍历字符串,如果是数字,则将数字入栈,如果是运算符号,则将前两次入栈的数出栈作运算,再将结果入栈,最后入栈的数即为表达式的结果。#inclu原创 2017-11-20 10:06:23 · 996 阅读 · 0 评论 -
栈的链式存储结构
栈的链式存储结构又成为链栈,其实链栈也可以看做是单链表,只是操作上和普通的链表不同,栈只是栈顶来做插入和删除操作。 栈的结构代码如下:typedef struct StackNode{ SElemType data; struct StackNode *next;}StackNode,*LinkStackPtr;typedef struct{原创 2017-11-16 16:04:52 · 312 阅读 · 0 评论 -
邻接矩阵存图法与邻接表存图法
邻接矩阵存图法与邻接表存图法数据结构中图有两种表示方法,邻接矩阵和邻接表。下面以判断二分图为例,看看如何用代码实现邻接矩阵存图法与邻接表存图法。首先明白什么是二分图,一个图给每个顶点染色,相邻的顶点不能同色,若能够只用两种颜色染色,则图是二分图。邻接矩阵存图法#include#define MAX_V 210using namespace std;int V, E;原创 2018-01-10 09:15:11 · 582 阅读 · 0 评论