数据结构
colorfulshark
目前在研究嵌入式Linux,希望能结识志同道合的朋友
展开
-
递归实现删除链表中值为x的元素
在数据结构递归这一章中,有一个通过递归来实现删除单链表中一个值为x的节点的函数,大体上就像这样void del(LinkList *&L,ElemType x){ Node *t; if (L==NULL) return; if (L->data==x) { t=L; L=L->next; free(t); return; } else原创 2015-04-28 19:30:08 · 8341 阅读 · 7 评论 -
【数据结构】基本概念
【1】数据结构的概念 数据和数据之间的关系,本质上说主要研究的是关系【2】数据(Data) 数据即信息的载体,是能够输入到计算机中并且能被计算机识别、存储和处理的符号总称。 一般数据可以理解为研究对【3】数据元素(Data Element) 数据元素是数据的基本单位,又称之为记录(Record)。【4】数据项 数据元素由若干基本项(或称字段、域、属性)组成,称之为数据原创 2017-03-20 20:10:52 · 757 阅读 · 0 评论 -
【数据结构】线性表
【1】定义 线性表是信息表的一种形式,表中数据元素之间满足线性关系(或线性结构), 是一种最基本、最简单的数据结构类型。【2】线性表的特征: 1) 对非空表,a0是表头,无前驱; 2) an-1是表尾,无后继; 3) 其它的每个元素ai有且仅有一个直接前驱(ai-1)和一个直接后继(ai+1)。【3】线性表的顺序存储(顺序表)的实现#include <stdio.原创 2017-03-20 20:17:01 · 323 阅读 · 0 评论 -
【数据结构】链表
【1】线性表的顺序存储结构有存储密度高及能够随机存取等优点,但存在以下不足: (1)要求系统提供一片较大的连续存储空间。 (2)插入、删除等运算耗时,且存在元素在存储器中成片移动的现象;【2】线性表的链式存储(单链表)的实现#include <stdio.h>#include <stdlib.h>typedef int datatype_t;struct node{ d原创 2017-03-20 20:21:35 · 398 阅读 · 0 评论 -
【数据结构】栈
【1】栈的概念栈是限制在一端进行插入操作和删除操作的线性表(俗称堆栈),允许进行操作的一端称为“栈顶”,另一固定端称为“栈底”,当栈中没有元素时称为“空栈”。【2】特点 ##后进先出(LIFO)。 【3】顺序栈(sqstack)定义数据类型定义结构体 top = 0, top = -1创建一个空的栈判断栈是否为空判断栈是否为满入栈(压栈)出栈(弹栈)打印栈的数据【4】链式栈原创 2017-03-27 08:19:14 · 653 阅读 · 0 评论 -
【数据结构】队列
【1】定义队列是限制在两端进行插入操作和删除操作的线性表,允许进行存入操作的一端称为“队尾”,允许进行删除操作的一端称为“队头”。当线性表中没有元素时,称为“空队”。【2】特点 ##先进先出(FIFO)。 【3】队列的顺序存储(循环队列)/* 顺序队 */#include <stdio.h>#include <stdlib....原创 2017-03-27 08:23:21 · 428 阅读 · 0 评论 -
【数据结构】树和二叉树
【1】树的概念树(Tree)是n(n≥0)个节点的有限集合T,它满足两个条件 :有且仅有一个特定的称为根(Root)的节点;其余的节点可以分为m(m≥0)个互不相交的有限集合T1、T2、……、Tm,其中每一个集合又是一棵树,并称为其根的子树(Subtree)。【3】度数一个节点的子树的个数称为该节点的度数,一棵树的度数是指该树中节点的最大度数。【4】路径一个节点系列k1,k2, ……,ki原创 2017-03-27 08:28:01 · 331 阅读 · 0 评论 -
【数据结构】图
【1】定义图(Graph)是一种非线性数据结构任意的两个元素都可能相关,即图中任一元素可以有若干个直接前驱和直接后继,属于网状结构类型。 树是图的特例——有向无环图【2】有向图(Digraph)设 Vi、Vj为图中的两个顶点,若关系< Vi,Vj >存在方向性,称之为有向图,记作< Vi,Vj > ,Vi为弧尾,Vj为弧头【3】无向图(Undigraph)设Vi、Vj为图中的两个顶点,若关系原创 2017-03-27 09:18:31 · 382 阅读 · 0 评论