
数据结构
StrongPanda
记录我的学习历程,与大家分享,欢迎大V指点
展开
-
数据结构——基本常识
1、数据结构分为逻辑结构和存储结构。存储结构是逻辑结构的计算机语言表达,而不是指数据元素的存储方式。常见的逻辑结构有:集合,线性,树,图。存储结构有:顺序,链接,索引,散列。数据结构研究的一般为非数值运算:查找,排序,插入,删除,修改和遍历。2、基本术语:数据元素:构成数据结构的基本单位。为一个结点。数据对象:具有相同性质的数据元素的集合。数据项/数据域:构成数据结构的最小单位。数据结构:数据元素及原创 2017-09-16 14:50:14 · 487 阅读 · 0 评论 -
数据结构——单循环链表一部分功能的C语言实现
单循环链表主要好处在于方便插入删除结点,适用于动态性比较强的数据结构;缺点是每一个结点只能通过上一个结点来访问,随机访问不方便。//数据结构:单循环链表 #include <stdio.h>#include <malloc.h>#include <stdlib.h>typedef struct Node{ int data; Node *next;}Node,*PNode;原创 2017-09-20 13:36:06 · 511 阅读 · 0 评论 -
数据结构——单循环链表的逆置
将带头节点的单循环链表逆置方法一:普通循环方法,通俗的讲,只要把每一个结点指向它本来的前一个即可,就像是直接改变了链表概念图中箭头的方向,这一方法就是使用普通的循环打成这个过程。C语言代码实现:void reverseList(PList x){ if(x->head!=x->tail&&x->head->next!=x->tail){ PNode p=x->head;原创 2017-09-22 10:19:37 · 4284 阅读 · 0 评论 -
数据结构——双循环链表一部分功能的C语言实现
#include <stdio.h>#include <malloc.h>#include <stdlib.h>typedef struct Node{ int data; Node *next; Node *last;}Node,*PNode;//节点 typedef struct List{ PNode head; PNode tail; i原创 2017-09-22 10:43:20 · 485 阅读 · 0 评论 -
数据结构——顺序表的几个重要方法的C语言实现
//数据结构:顺序表 #include <stdio.h>#include <malloc.h>#include <stdlib.h>#define INITSIZE 100#define ADDSIZE 10typedef struct SqList{ int *addr; int length; int size;}SqList;void initList(S原创 2017-09-18 22:36:04 · 722 阅读 · 0 评论 -
数据结构——非循环带头结点单链表的递归方法逆置
与循环单链表相比,非循环带头结点单链表的逆置有一个难以处理的点是头结点的处理。#include <stdio.h>#include <malloc.h>#include <stdlib.h>typedef struct Node{ int data; Node *next;}Node,*PNode;//节点 typedef struct List{ PNode hea原创 2017-09-22 15:14:01 · 1991 阅读 · 0 评论 -
数据结构——循环队列的简单实现
采用顺序存储方式,存储容量要比逻辑上的容量多一个,以此方便判断队空还是队满。采用尾进头出的模式,来达到先进先出的目的。操作简单描述如下:队尾指针是rear,队头是front,其中QueueSize为循环队列的最大长度。1.队空条件:rear==front。 2.队满条件:(rear+1) %QueueSIze==front。 3.计算队列长度:(rear-front+QueueSize)%Que原创 2017-10-13 12:21:17 · 656 阅读 · 0 评论 -
数据结构——使用非递归方法后序遍历二叉树
使用扩展先序遍历二叉树来进行二叉树的创建,使用非递归方法遍历二叉树,并且不同于书上使用的顺序栈,这里采用链栈,与顺序栈的不同是不能将NULL压栈,因此算法较复杂一些,是一次尝试。C语言代码:#include <stdio.h>#include <malloc.h>#include <stdlib.h>//定义二叉树 typedef struct BinaryTree{ char dat原创 2017-11-03 15:05:09 · 664 阅读 · 0 评论