数据结构
New_Teen
一个普通的在读大学生,平平无奇的外貌下有着不平凡的心,一颗恒心,千里之行,始于足下,欢迎大家一起学习交流,加油
展开
-
队列——C语言(链表)
用链表来写队列真的比数组简单得多,本人已经发了用数组实现队列的文章,欢迎大家阅览1.先写一个队列的接口(queue.h)/*一个队列模块的接口*/#include <stdlib.h>#define QUEUE_TYPE int /*队列元素的类型*//*** create_queue** 创建一个队列,参数为队列可以存储元素的最大数量** 这个函数只适用于动态分配数组的队列版本*/void create_queue(size_t size);/*** d原创 2022-05-21 23:12:32 · 690 阅读 · 0 评论 -
队列——C语言(动态数组)
接下来我将用malloc函数实现队列的动态数组版本提示:malloc函数是C语言中分配内存空间的函数1.首先,按照惯例,先写一个队列的接口(queue.h)/*一个队列模块的接口*/#include <stdlib.h>#define QUEUE_TYPE int /*队列元素的类型*//*** create_queue** 创建一个队列,参数为队列可以存储元素的最大数量** 这个函数只适用于动态分配数组的队列版本*/void create_queue(si原创 2022-05-21 22:59:53 · 415 阅读 · 0 评论 -
队列——C语言实现(静态数组)
队列是一种先进先出的数据结构下面将展示我用普通的静态数组实现的队列1.首先先写一个队列的接口(queue.h)/*一个队列模块的接口*/#include <stdlib.h>#define QUEUE_TYPE int /*队列元素的类型*//*** create_queue** 创建一个队列,参数为队列可以存储元素的最大数量** 这个函数只适用于动态分配数组的队列版本*/void create_queue(size_t size);/*** destroy_原创 2022-05-21 22:44:48 · 1040 阅读 · 0 评论 -
双链表(插入&遍历)——C语言
所谓双链表,就是单链表的升级版,其中的结点,既有指向下一个结点的指针,又有指向前一个结点的指针。规定链表第一个结点的前指针为NULL,最后一个结点的尾指针为NULL。同时,双链表不仅有头指针,还有尾指针,头指针指向链表第一个结点,尾指针指向链表最后一个结点。因此,在有序双链表中插入新值时,要改变4个指针,首先考虑四种情况(空链表插入,链表头插入,链表中间插入,链表尾部插入)。遍历即可升序,也可降序。1.首先写一个定义双链表的接口(结点数据类型定义,函数声明)(dlink.h)/*** 定义一原创 2022-05-07 17:57:36 · 1682 阅读 · 1 评论 -
有序单链表插入——C语言
以下内容要求有一定指针和链表基础,请配合画图理解1.首先我们定义一个头文件(slink.h),用来声明链表的结点数据类型,以及相关函数/*** 定义一个有序单链表的操作接口*/#include <malloc.h> //动态分配内存声明文件#include <assert.h> //断言函数声明文件#include <stdio.h> //标准输入输出声明文件#define LINK_TYPE int //链表存储数据类型/*** 定义结点数原创 2022-05-07 06:00:00 · 3520 阅读 · 0 评论 -
堆栈——C语言(链表)
想必你已经看完了我写的堆栈的数组版本,接下来,就好好看看链表怎么实现堆栈吧1.首先定义一个堆栈接口(stack.h)/*** 一个堆栈模块的接口*/#include <stddef.h>#define STACK_TYPE int /*堆栈所储存的类型*//*** push** 把一个新值压入堆栈中,它的参数是被压入的值。*/void push(STACK_TYPE value);/*** pop** 从堆栈中弹出一个值,并将之返回*/STACK_TY原创 2022-05-04 22:59:11 · 997 阅读 · 0 评论 -
堆栈——C语言(动态数组)
首先请大家预知,在C语言中,一个数组的数组名是一个指针常量,它指向数组第一个元素,比如#include<stdio.h>int main(){ int a[3] = {1, 2, 3}; printf("a数组第1个元素:%d\n",*a); printf("a数组第2个元素:%d\n",*(a + 1)); printf("a数组第3个元素:%d\n",*(a + 2)); return 0;}控制台输出:a数组第1个元素:1a数原创 2022-05-04 22:30:19 · 1161 阅读 · 0 评论 -
堆栈——C语言实现(静态数组)
1.首先写一个堆栈接口(stack.h),在里面声明堆栈操作函数并定义堆栈存储数据类型。/*** 一个堆栈模块的接口*/#define STACK_TYPE int /*堆栈所储存的类型*//*** push** 把一个新值压入堆栈中,它的参数是被压入的值。*/void push(STACK_TYPE value);/*** pop** 从堆栈中弹出一个值,并将之返回*/STACK_TYPE pop(void);/*** top** 返回堆栈顶部元素的值,但不对原创 2022-05-04 21:55:12 · 873 阅读 · 0 评论 -
约瑟夫环——环链表(pyhton数据结构)
1.问题描述几个人(以编号1,2,3,4,.....,n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列,他的下一个又从1开始报数,数到m的那个人又出列;按照此规律重复下去,直到圆桌周围只剩一个人,最后一人为“胜利者”,每一次出列的人姑且称之为“失败者”吧。2.算法实现2.1 数据结构的准备创建一个节点类,初始化方法为存储每个人的编号和他的下一个节点。然后创建一个实现环链表的函数,输入为节点数,实现将每一节点连接起来,构...原创 2022-03-20 21:03:34 · 839 阅读 · 0 评论