数据结构
effility
我好菜啊,什么时候才会努力啊,傻瓜
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
c语言顺序表的基本操作
下面是顺序表的基本操作,c语言版的数据结构书上写的操作都实现了因为总体代码太长如果写在一个class中要近500行,阅读和修改都不方便,所以采用分开写,希望大家以后写较长的程序时也采用这种方法,自己运行的所有功能都能实现,而且个人感觉界面还是比较人性化的,大家还有什么意见或者程序有什么问题都可以在评论区提出,我会及时修改的。main.cpp#include "seqlist.h"int m...原创 2018-06-30 15:18:36 · 16971 阅读 · 8 评论 -
c语言二叉树的建立,遍历,求根的深度,叶子节点的个数
#include <stdio.h>#include <stdlib.h>typedef struct node{ char data; struct node *rchild,*lchild;}node,*linklist;void preorder_create(linklist *l)//先序创建二叉树{ char ch,t...原创 2018-09-06 23:19:31 · 3086 阅读 · 0 评论 -
c语言线索二叉树
通过前序建立二叉树时,会有很多个空指针存在对于拥有N个结点的链表,拥有N+1个空指针域,即是空指针。只有通过遍历,产生一个序列,才知道一个结点的前驱和后继(线性表),否者只能知道他的左右子树利用空地址存储在某种方式遍历下前驱和后继结点的信息把指向前驱和后继信息的指针称为线索,加上线索的二叉链表称为线索链表,相应的二叉树就称为线索二叉树对于中序遍历为HDlBJEAFCG的二叉树,...原创 2018-09-08 20:43:52 · 459 阅读 · 0 评论 -
c语言队列的顺序存储结构
这是根据顺序表实现的队列的顺序存储结构#include <stdio.h>#include <stdlib.h>typedef struct node{ int data[100]; int size;}node,*linklist;void create_queue(linklist *l)//队列的建立{ (*l)=(nod...原创 2018-09-02 21:46:16 · 472 阅读 · 0 评论 -
栈的链式存储结构的实现
栈的链式存储结构和线性表的链式很像,而且简单的多#include <stdio.h>#include <stdlib.h>typedef struct node//结构体定义{ int data;//数据域,存储数据 struct node *next;}node,*linklist;void create_stack(linklist...原创 2018-09-02 11:41:00 · 234 阅读 · 0 评论 -
栈的顺序存储结构
和线性表的顺序存储很像,但是基本操作要简单的多#include <stdio.h>#include <stdlib.h>#define MAX 100typedef struct sqstack{ int data[MAX]; int top;//栈顶,表示数组的大小}sqstack,*linklist;void create_st...原创 2018-09-02 11:06:57 · 229 阅读 · 0 评论 -
c语言实现双向链表
单向链表有一定的缺陷,其中一个就是只能一条路走到黑,只能前进不能后退,但双向链表就解决了这一问题#include <stdio.h>#include <stdlib.h>typedef struct node{ int data; struct node *next; struct node *prior;}node,*linklis...原创 2018-09-02 10:11:56 · 2207 阅读 · 1 评论 -
c语言队列的链式存储
队列的链式存储的一种实现方法就是简化版的线性链表#include <stdio.h>#include <stdlib.h>typedef struct node//结点结构{ int data; struct node *next;}node,*linklist;typedef struct//队列的链表结构{ linklist...原创 2018-09-04 22:35:38 · 295 阅读 · 0 评论 -
c语言实现约瑟夫环
需求分析一群小孩编号为1,2,…,n(n>0)围成一圈,有一个刚出锅的山芋在他们之间传递。假设刚开始由1号拿着山芋,然后依次计数把山芋交给下一个小孩,当数到某个特定的k时,拿着山芋的小孩退出游戏,然后从下一个小孩重新开始计数,如此不断,最后剩下的那个孩子就是幸运者。要求设计一个程序模拟次过程,并给出不同的n,k组合下那个幸运者是谁?1、 输入的形式和输入值的范围:演示程序以用户...原创 2018-09-01 22:36:45 · 7131 阅读 · 1 评论 -
c语言链表的建立(非常详细)//关于malloc函数和typedef的一些问题
typedef是c语言中一个非常重要的关键字,有很多的用处1:自定义名称(int char.....)类似于define如执行下列语句后typedef int hahaha;hahaha x;等价于int x;//个人感觉这是一个闲着没事找事干的做法,明明可以直接用int代替,为啥还要在新定义一个呢,可能是为//了函数移植的方便吧,但是现在的我是感觉不出来有啥好处,可能以后想法...原创 2018-08-29 23:17:09 · 6091 阅读 · 3 评论 -
c语言循环队列的建立
对于队列来说,出队列就是在队列头部出来,然后将后面的元素移动前一位,使他重新变成从0开始的队列数组如果我们不移动就会遇到前面好多空位,却被判定为队满(后面在进队列的过程中进满了)称为假溢出循环队列就可以解决这个问题,‘’队满‘’时从头部开始重新插入#include <stdio.h>#include <stdlib.h>#define max 5typ...原创 2018-09-04 11:30:26 · 2723 阅读 · 0 评论 -
c语言循环链表的实现
单链表有一定的缺陷,就是单向性,只能从一个结点到下一个节点,而不能访问到上一个结点,而循环链表就可以解决这一问题,当然,用双向链表更加方便#include <stdio.h>#include <stdlib.h>typedef struct node{ int data; struct node *next;//指针域 int size...原创 2018-09-01 13:22:57 · 9327 阅读 · 4 评论 -
静态链表的实现
对于一般的动态链表来说,要动态分配,还要借助指针对于静态链表来说,不用借助指针,建立两个数组,一个数组存储数据,一个数组存储各个元素之间的位置关系从某方面来说,静态链表是顺序表和链表的结合体,即具有二者的有点,如,插入和删除时不需要移动元素,便于查找(某种情况下),但同时也具备了二者的缺点,首先就是失去了动态性,浪费空间,修改次数多了以后查找也不再方便#include <...原创 2018-08-30 23:38:29 · 375 阅读 · 0 评论 -
关于链表的插入删除,查找
对于链表来说,插入,删除和查找是重要的操作,由于链表不想顺序表那样,以数组的形式表示,不能直接根据下标进行操作,解决这个问题的一个方法就是自己创建一个数字进行操作void list_insert(linklist l)//插入操作{ int i,j,x; i=0; printf("请输入插入的位置和数据\n"); scanf("%d %d",&i,&...原创 2018-08-30 18:16:29 · 279 阅读 · 0 评论 -
c语言线性表的链式存储的实现
下面是链表的一些基本操作,使用c语言实现#include "HA.h"int main(){ int e,n,select=1; LinkList L; LinkList T; printf("请输入所要创建链表的结点个数\n"); scanf("%d",&n); printf("**************************...原创 2018-07-01 17:19:58 · 3117 阅读 · 0 评论 -
c语言无向图的建立
c语言无向图有两个参数,一个是顶点的名称,另一个是边即两顶点之间是否存在边,存在记为1,不存在记为0存储结构如下#define MAX 100typedef struct Mgraph{ char vexs[MAX];//顶点表 int arc[MAX][MAX];//边表 int num_vert,num_edge;//定点数和边数} Mgraph,*l...原创 2018-09-15 15:41:17 · 8327 阅读 · 0 评论
分享