数据结构
如我1220
这个作者很懒,什么都没留下…
展开
-
数据结构--队列和栈
队列基于顺序表实现;结构:定义一个数组来存储数据;头指针,尾指针;相关操作:typedef struct Queue { int *data; int head, tail, length;} Queue;Queue *init(int n) { // 初始化队列 Queue *q = (Queue *)malloc(sizeof(Queue)); q->data = (int *)malloc(sizeof(int) * n); //初始化数组原创 2021-09-13 23:36:24 · 72 阅读 · 0 评论 -
约瑟夫环问题
题目描述约瑟夫置换是一个很著名的问题,有个 N 犹太人围成一圈,从第一个人开始报数,数到 M 的人出列,再由下一个人重新从 开始报数,数到 M 的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。输出一行 N 个整数,按顺序输出每个出圈人的编号。(注:编号是从 1 开始的,每两个数字中间有空格,最后一个数字后面没空格。)输入输入两个整数 N 和 M,分别表示有 N 个犹太人,数到 M 的人出圈。(2 <= n <= 10000, 2 <= m <= 10000原创 2021-06-18 17:13:15 · 142 阅读 · 0 评论 -
顺序表与链表
顺序表主要代码:typedef struct vector { int *data; int size,length;} Vec;Vec *init(int n) { Vec *v = (Vec *)malloc(sizeof(Vec)); v->data = (int *)malloc(sizeof(int) * n); v->size = n; v->length = 0; return v;}int expand原创 2021-05-31 02:26:25 · 332 阅读 · 0 评论 -
简单空间换时间按思想
问题:由一个自然数组成的数组中,找出出现次数最多的数,并打印出来。思想:将所有的数字排序,然后一一递归, 这样效率不高,费时;利用空间换取时间,几多利用资源,提高时间效率:另外创建一个数组来存储每个数出现的次数,然后再遍历找出最大的数,注意这一的最大的数其实是数组的索引加一;代码如下:#include <stdio.h>void search_fun(int *arr, int len) { int spl[100] = {0}; int max原创 2021-05-06 22:46:49 · 86 阅读 · 0 评论