
C语言 数据结构 算法
hqweay
Blog: https://leay.net
展开
-
【C语言】 链表 单链的建立以及输出
链表的建立过程是在一个空链表的基础上逐步插入新的节点而成的。所谓空链表,即链表没有一个节点,这是链表的头指针为空。#include 这个头文件用于malloc的运用,取得一个内存空间。#include#includestruct bookdate{int book;struct bookdate *next;};原创 2016-11-10 22:39:54 · 2975 阅读 · 0 评论 -
【C语言 数据结构】汉诺塔(hanoi)的原理
汉诺塔的移动是用递归实现的,要理解汉诺塔,必须对递归有一个清晰的认识。不过要理解汉诺塔也并不需要搞懂递归的底层实现之类的,明白怎么工作就可以了,并不需要知道这是怎么实现的。 把盘子的移动看成三个环节,①: 上面n-1个盘子从A借用C移动到B②: 第n个盘子直接从A移动到C③: 剩下n-1个盘子从B借用A移动到C原创 2017-05-22 19:42:15 · 1299 阅读 · 0 评论 -
递归的优化(跳台阶)
题目描述 一个台阶总共有n 级,如果一次可以跳1 级,也可以跳2 级。求总共有多少总跳法,并分析算法的时间复杂度。参考解答: 用的递归的方法有许多重复计算的工作,事实上,我们可以从后往前推,一步步利用之前计算的结 果递推。 初始化时,dp[0]=dp[1]=1,然后递推计算即可:dp[n] = dp[n-1] + dp[n-2]。 参考代码如下: ~~~ //1, 1, 2, 3, 5转载 2017-11-08 08:47:53 · 319 阅读 · 0 评论 -
字符串转整数
题目描述 输入一个由数字组成的字符串,把它转换成整数并输出。例如:输入字符串”123”,输出整数123。给定函数原型int StrToInt(const char *str) ,实现字符串转换成整数的功能,不能使用库函数atoi。分析与解答: 本题考查的实际上就是字符串转换成整数的问题,或者说是要你自行实现atoi函数。那如何实现把表示整数的字符串正确地转换成整数呢?以”123”作为例子: 当转载 2017-11-08 10:21:10 · 1068 阅读 · 0 评论 -
[c]文件内容反向输出到另一个文件(递归实现)
“`includeincludedefine N 10void fun(FILE *fp1,FILE *fp2) { char data[N]; if(fscanf(fp1,”%s”,data)==EOF)return; else { fun(fp1,fp2); fprintf(fp2,”%s\n”,data);转载 2017-11-22 09:10:41 · 999 阅读 · 0 评论 -
[C]去除数组中重复数字,并可按需保留多少个重复数字
#include#define N 10int main(){ int A[N] = { 1,3,2,3,2,5,3,5,3,9 }; int len = N; int i; int j; int k; int temp = 0; for(i = 0; i < len; i++){ for(j = i+1; j < len; j++){ if(A[j] ==原创 2017-11-22 10:33:57 · 1299 阅读 · 0 评论 -
C语言数据在内存分配
原文地址转载 2017-12-26 22:27:05 · 350 阅读 · 0 评论 -
【C语言】移盘子
#includevoid move(char x,char y){ printf("%c to %c\n", x, y);}void hanoi(int n, char a, char b, char c){if(n == 1){ move(a,c);}else{ hanoi(n-1,a,c,b)转载 2017-01-10 22:41:19 · 2169 阅读 · 0 评论 -
【数据结构】几种排序
第一种 直接插入排序简单地考虑比较数字大小,而不考虑排序其他数据类型。如果考虑排序其他类型的数据,其实也就是排序这种类型的关键字key来排序。#includeint main(){ int a[5]; for(int i = 0; i < 5; i++){ scanf("%d", &a[i]); } int i,j; int temp; for(i = 1;原创 2017-06-05 20:41:58 · 473 阅读 · 0 评论 -
【数据结构】C# 面向对象思想完成三种排序
sort类 主要逻辑using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Selection{ public class sort { /** *原创 2017-06-05 19:21:54 · 567 阅读 · 0 评论 -
【C语言】 链表 单链的建立,节点增加 删除 顺序插入
上一篇的升级版#include#includestruct bookdata{int book;struct bookdata *next;}; /*打印链表*/ struct bookdata *Display(struct bookdata *head){struct bookdata *dis = head;原创 2016-11-12 18:53:35 · 1462 阅读 · 0 评论 -
【C语言】指向指针的指针
冒泡排序#include int sort(int **p,int n){ int temp; for(int i = 0; i { for(int j = i+1; j { if(*p[i] > *p[j]) {转载 2016-11-30 14:47:36 · 445 阅读 · 0 评论 -
【C语言】简单思路找一个数组中重复次数最多的数
#include int main(){ int a[1024]; int b[1024] = {0}; //初始化每个数出现一次 int i = 0; scanf("%d", &a[i]); while(a[i] != 0) { i++原创 2016-11-23 16:12:13 · 11988 阅读 · 1 评论 -
【C语言】 约瑟夫环问题
用一个数组储存,每到需要出去的数,把他令为0,下一次遍历到这个数,判断他是否为0,如果为0则不进行增加#include "stdio.h"int main(){ int a[10] = {1,2,3,4,5,6,7,8,9,10}; int i = 0; int x = 10; int k = 0; //记录次数 int转载 2016-11-23 16:53:19 · 534 阅读 · 0 评论 -
【C语言】称硬币问题
虽然打了原创的标签,其实只有字和代码是我打的...... 已知有n个硬币,其中有一枚假的,重量略轻,问以最复杂的情况最少需要多少次。 次数为 log(n)+1用代码实现#includeint main(){ int times; int n; scanf("%d", ×);原创 2016-11-23 14:57:05 · 4440 阅读 · 0 评论 -
【C语言】单向循环链表
输出用了 do while 用while 可以实现吗?上一篇头插法修改得来#include#includeint main(){ struct list{ int num; struct list* prior; }; char key; struct l原创 2016-12-07 15:52:01 · 550 阅读 · 0 评论 -
【C语言】简单图书管理系统
/* 记下写过程中遇到的问题,以及做一个备份。看了大神写的学生成绩管理系统代码,不足之处,包括,清屏功能的实现,返回上一级的实现,格式的问题,写入文件操作和读取文件花费了大量时间,大神说到他也一样。读写文件操作原创 2016-10-22 12:26:56 · 2947 阅读 · 4 评论 -
【C语言 数据结构】三元组的实现 最终作业版
#include#include//定义常量 方便操作//可能也没多方便 #define Time 1000 typedef int *Triplet; typedef int Status; /**定义一系列三元组的操作 C语言中的函数 *///初始化 void InitTriplet(Triplet *T, Status v1, Status v2, Stat原创 2017-03-06 13:10:13 · 5736 阅读 · 1 评论 -
【C语言】单向链表 头插法
#include#includeint main(){ struct list{ int num; struct list* prior; }; char key; struct list *head = NULL; struct list *last = NULL; struc原创 2016-12-07 15:34:58 · 554 阅读 · 0 评论 -
【C语言 数据结构】栈的极简实现
/***结构体SqStack作为栈*SqStack由三部分组成 base是作为栈的底指针 top指向栈顶元素上面的空间 StackSize是栈的大小*@hqweay */ #include#include#include#define STACK_INIT_SIZE 10#define STACKINCREMENT 2#define OK 1#define NO 2原创 2017-04-27 13:49:07 · 609 阅读 · 0 评论