c语言学习
昆昆欧粑粑
这个作者很懒,什么都没留下…
展开
-
水仙花数
水仙花数就是一个三位数,其各位数字的立方和正好等于该数本身,水仙花数一共有153,370,371,407这4个,下面给出c语言的程序求出来。核心算法就是把各位数字拆开,对于一个三位数,各位可以直接对10求余数(%),对于十位,因为是int类型,可以直接除10之后在对10求余,而对于百位根据int值的规律可以直接除100,下面给出具体源代码。#include int main(){原创 2017-11-18 22:23:58 · 199 阅读 · 0 评论 -
优先队列——C语言实现
队列的特点是,先进先出。优先队列的特点是,进来的,根据优先次序,一个个出来。我们可以使用堆的思想来解决这个问题。代码:堆的实现参照:堆——用C语言实现,里面会用到头文件(包含堆):#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <assert.h>#include <...原创 2018-08-25 17:46:18 · 4626 阅读 · 0 评论 -
堆——C语言实现
堆是一种数据结构,他的特点在于形成某种优先的结构。在计算机经常用到,比如优先队列,或者是优先进程管理。堆(也叫二叉堆)的性质:1、任何一个节点,都不大于他的父亲节点。2、必须是一颗完全二叉树比如下面:我们用一个很经典的堆的实现方法:用数组实现堆。注意,这里实现的叫最大堆,就是把最大元素放在顶端,最小堆的实现方法相同。如图,我们给一个堆的每个元素编号: 这...原创 2018-08-25 17:30:51 · 3655 阅读 · 0 评论 -
堆排序——C语言实现
如何构建堆请参照:堆——C语言实现堆排序://堆排序void sortHeap(int arr[], int n){ MH mh;//堆 initMaxHeap(&mh, n); for (int i = 0; i < n; i++) { insertMaxHeap(&mh, arr[i]); } for (int i = n - 1; i >...原创 2018-08-25 17:30:14 · 503 阅读 · 0 评论 -
C语言实现heapify算法堆转换
heapify算法主要是把一个数组按堆的顺序排好,可以实现一定的优先级,下面是对数组堆化参考://下移操作:void AdjustDown(MH* mh, int k){ while (k * 2 <= mh->count) { int j = k * 2; if (j + 1 <= mh->count && mh->data[j...原创 2018-08-25 17:26:57 · 1035 阅读 · 0 评论 -
双向链表——C语言实现
双向链表双向链表就是在链表的基础上,加上一个指向前节点的指针,这样就方便了从后面进行的操作。实现很简单,直接看代码:头文件:#include <stdio.h>#include <stdlib.h>#include <assert.h>typedef int LTDataType;#define N 10typedef st...原创 2018-08-29 19:05:22 · 3015 阅读 · 0 评论 -
二叉搜索树详解——附加C语言代码实现
二叉搜索树:对于树中的每个节点X,它的左子树中所有项的值都小于X,右子树所有值都大于X,并且没有重复。一、构造树:树可以由一个个的节点构成,所以先定义节点结构体,和数据类型变量重命名typedef int BSTDataType;typedef struct BSTreeNode{ struct BSTreeNode* _left; struct BSTreeNode*...原创 2018-08-31 15:24:58 · 2277 阅读 · 3 评论 -
迷宫问题——c语言栈实现
我们用一个二维数组表示迷宫的点,1能走,0不能走,用回溯法写,用一个简单一点的迷宫做事例:#define _CRT_SECURE_NO_WARNINGS 1#include <assert.h>#include <stdio.h>#include <stdlib.h>#define N 6 //N*N的迷宫#define length N...原创 2018-08-16 15:04:22 · 8818 阅读 · 2 评论 -
两个栈实现一个队列
两个栈实现队列其实很简单,因为栈只能先入后出,所以用第二个栈把他倒过来一下,出来的就是队列了。记得注意判断从哪个栈倒到哪个栈就可以了,具体看代码:代码:c语言实现//-------------------先实现栈-------------------#define _CRT_SECURE_NO_WARNINGS 1#include <assert.h>#include...原创 2018-08-18 17:57:30 · 221 阅读 · 0 评论 -
两个队列实现一个栈
栈是先进后出,队列是先进先出。把一个队列q1当作存数据的队列,另一个队列q2当作替换队列就可以实现一个栈。具体方法:当进栈的时候,就直接给存数据的队列进去。当要出栈的时候,因为要出队尾,所以我们把q1队列的前n-1个元素一个个出队q1,入队到q2里去,剩下一个元素就是要出栈的元素,然后直接出队就完成了出栈操作。然后下一次就吧q1和q2反过来就好了,具体代码实现如下,要注意处理好怎么判断从哪个队...原创 2018-08-18 17:52:05 · 160 阅读 · 0 评论 -
用一个数组实现两个栈(共享栈)
共享栈:一个数组实现两个栈,第一个栈是开头,第二个栈是结尾:用c语言实现,很简单,两个指针一个数组就够了,上代码:#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <stdlib.h>#include <assert.h>#define N 100typede...原创 2018-08-18 15:13:08 · 1999 阅读 · 0 评论 -
把字符串颠倒,并把字符串里的每个单词再颠倒(c语言实现)
题目:有一个字符串:"student a am i",要把它变成:“i am a student”c语言实现#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>#include<string.h>char* reserve(char* p, int len...原创 2018-08-18 14:30:04 · 2625 阅读 · 0 评论 -
数据结构——C语言实现队列的初始化,入队出队,查看等操作
数据结构——C语言实现队列的初始化,入队出队,查看等操作#define _CRT_SECURE_NO_WARNINGS 1#include <assert.h>#include <stdio.h>#include <stdlib.h>#define length 10typedef int DataType;typedef struct...原创 2018-08-16 00:27:24 · 8051 阅读 · 0 评论 -
数据结构——C语言实现栈的初始化、入、出、查看栈顶等操作
数据结构之C语言实现栈的初始化、入栈、出栈、查看栈顶、查看栈大小、判空等基础操作。#define _CRT_SECURE_NO_WARNINGS 1#include <assert.h>#include <stdio.h>#include <stdlib.h>#define length 10typedef int DataType;ty...原创 2018-08-15 23:28:20 · 11539 阅读 · 0 评论 -
c语言\n和\r的区别
c语言里:反斜杠 \r 代表回车反斜杠 \n代表换行 回车 不等于 换行,回车是到当前行的首位置,换行是到下一行的首位置。可以用\r刷新当前行的内容,可以用\n开始输入下一喊的内容...原创 2018-09-15 12:08:52 · 7098 阅读 · 0 评论