数据结构
数据结构笔记
68岁爱用飘柔
纵有疾风起,人生不言弃.
展开
-
数据结构-单链表(c语言)
一下代码是使用c语言编写的单链表结构,包括相应的增删改查操作#include<stdio.h>#include<malloc.h>//定义结构体typedef struct dnode{ int data; struct dnode *next;}snode,*ptr;//初始化链表并插入元素(向后插入)ptr initlink(){ ptr head,last,p; int x,i,n; head=last=(ptr)malloc(sizeof(原创 2020-05-28 12:56:38 · 298 阅读 · 0 评论 -
数据结构-二叉树(c语言)
一下代码是二叉树的相关代码、包括二叉树的根据前序遍历创建二叉树。根据前序遍历、中序遍历与后续遍历依次查找二叉树的各个节点。#include<stdio.h>//定义二叉树节点数据类型typedef struct bitnode { int data; //存储数据结点 struct bitnode *left, *right; //存储该结点的左右子树指针} bitnode, *bitree; //bitree为指向原创 2020-05-28 12:54:01 · 289 阅读 · 0 评论 -
数据结构-队列(c语言)
一下是简单的使用c语言,进行队列的简单实现。包括初始化、入队、出队和查看队头元素。#include<stdio.h> //循环队列完成#include<malloc.h>#define MAXSIZE 20//设置队列最大的长度//进行结构体的定义typedef struct Queue{ int data[MAXSIZE]; int front,rear;}queue,*que;//进行队列的初始化操作void init(que q){ q->fro原创 2020-05-28 12:50:20 · 350 阅读 · 0 评论 -
数据结构6:队列
队列一、顺序队1.如何判断队满二、循环队进队算法出队算法链式队进队算法出队算法允许在一端插入,另一端删除的表叫做队,或队列。队尾(rear):允许插入的一端队头(front):允许删除的一端first和last:分别是指向队头元素和队尾元素进队和出队特点:对结构好似一段两端开口的管道,结点从一段进入,从另一端退出。因为队结构遵循先进先出原则,所以,又称先进先出表或FIFO表。一、顺序队顺序对基本用法:首尾指针法尾指针后置:尾指针指是last指向队尾的后一个元素,元素加载last指针位原创 2020-05-21 21:00:33 · 443 阅读 · 0 评论 -
数据结构5:栈
栈一、顺序栈1.定义2.进栈算法3.退栈算法4.两个堆栈利用空间二、链式栈1.进栈算法2.出栈算法三、栈的应用——程序中断只允许在同一端点处进行插入或删除的表结构成为栈插入的一端称为栈顶;另一端称为栈尾。将元素放入栈是进栈,将元素取出成为退栈。特点:栈是一种后进先出结构又称后进先出表(LIFO表)分类:顺序栈链式栈一、顺序栈1.定义#define EMPTY -1 //空栈的栈顶指针const int m=1000;//预定的栈空间大小int s[m];//定义顺序栈原创 2020-05-21 20:58:52 · 226 阅读 · 0 评论 -
数据结构8:树和二叉树
数和二叉树一、树的逻辑结构1.数的定义2.树的基本术语3.树结构和线性结构的比较①线性结构②树结构4.树的抽象数据类型定义5.树的遍历操作①前序遍历②后序遍历③层序遍历二、树的存储结构1.双亲表示法2.孩子链表表示法方案一:指针域的个数等于数的个数方案二:指针域的个数等于该结点的度3.孩子兄弟表示法三、二叉树的定义1.特点2.二叉树的基本形态3.特殊的二叉树①斜树②满二叉树③完全二叉树4.二叉树的基本性质①二叉树的第i层上最多有2i-1个结点(i>=1)。②一棵深度为k的二叉树中,最多有2k-1个结点原创 2020-05-21 20:57:08 · 501 阅读 · 0 评论 -
数据结构-栈(简单版)
一下为数据结构中,栈的简单构造版本,包括入栈与退栈#include<stdio.h>#define MAXSIZE 100typedef struct seqstack{ char a[MAXSIZE]; int top;}node,*stack;//定义结构体void init(stack s)//初始化栈表{ s->top=-1;}int pus...原创 2020-04-22 16:07:28 · 125 阅读 · 1 评论 -
c语言-单链表的增删改查(简单版)
在学了链表之后,自己也能写出一个简单的链表结构,这里就将自己的代码分享一下。如果发现有不足之处,欢迎指出。1.创建结构体typedef struct dnode{ int data; struct dnode *next;}snode,*ptr;2.实现向后插入法构造链表函数这里返回的是head,ptr initlink()//初始化链表并插入元素(向后插入){ ptr h...原创 2020-04-07 23:44:18 · 1816 阅读 · 0 评论 -
简单链表
简单的c语言链表这是一个简单版本的c语言链表,只涉及插入和显示。作用,来将用户输入的姓名和年龄进行存储。并显示下面进行分段展示:第一段,定义结构体typedef struct dnode{ char name[20]; int age; struct dnode *next;}snode,*ptr;第二段、定义生成列表函数ptr createlindedA(int n)...原创 2020-04-07 21:16:59 · 237 阅读 · 0 评论 -
数据结构4:链表(下)
链表(下)一、链表的种类二、常用种类示例1.单向链表2.单向加头链表3.单向加尾链表4.单向循环链表5.单向加头循环链表6.双向简单链表7.双向加头循环链表三、单向加尾链表的查找四、单向加头循环链表的删除五、双向链表的插入和删除1.插在p的左侧:2.删除p所指结点六、有序链表的构造七、示例:稀疏多项式求和问题结点结构和主调程序一、链表的种类不修改头指针易找前驱结点不分首位结点单项链表加表头加表...原创 2020-04-07 18:06:40 · 468 阅读 · 4 评论 -
数据结构3:链表
表的连式存储-链表链表是线性表的一种存储形似。1.链表的结构特点值域链域值域(数据域):存储表元素值链域(指针域):存储后继结点的存储地址(值单向链表)2.链式存储结构图首指针(表头指针):指向链表的第一个结点的指针变量。其值为首结点的存储地址。表尾结点(最后一个结点)的链域值为空(NULL)**^**图中使用这个,表中使用NULL链表就是表头指针和一串相继链接的结点的总称3....原创 2020-03-22 16:04:27 · 483 阅读 · 0 评论 -
数据结构1:数据结构概述
一、为什么要学数据结构 数据结构课程主要研究如何求解非数值计算的问题 并且选择数据结构不仅与问题的特点和数据的种类有关,还与数据量的大小有很大的关系。在整个考虑过程中我们需要考虑一下几点:1.对谁做处理?(数据集合)2.数据之间的关系是怎么样的?(数据模型)3.需要什么样的处理工作?(干什么)4.处理的方法和步骤如何?(怎么干)5.算法效率?(干的怎么样)总的来说数据结构的研...原创 2020-03-22 16:02:36 · 507 阅读 · 0 评论 -
数据结构2:顺序表
顺序表1.线性表定义:具有n(n>=0)个数据结点(元素)的序列A=(a1,a2,a3,…,an);数据集合可以为空。引入下面术语:首节点和尾结点表的长度空表前驱和后继(左邻和右邻)有序表其中,a1称为首结点,an称为尾结点,n是表的长度,如果n等于0,称为空表,相继的两个结点之间互为前驱和后继,a1没有前驱,an没有后继。如果表中的结点是按结点的值,或按结点某个域的...原创 2020-03-22 16:03:40 · 496 阅读 · 0 评论