C语言学习笔记
C语言基础学习笔记
aabyte
天光乍破,暮雪白头
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
哈夫曼树的创建及哈夫曼编码的求解
完全二叉树的实现及常用操作:#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAXLEAF 1000 //最多叶子节点数#define MAXVALUE 2147483647 //最大权值/*哈夫曼树的数据结构*/typedef struct{ int weight; //权值 int parent;原创 2021-11-25 00:49:31 · 991 阅读 · 0 评论 -
完全二叉树的实现及常用操作
完全二叉树的实现及常用操作:#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#define MAXNODE 1000/*二叉树的节点数据结构*/typedef int ElemType; //节点数据域typedef struct BitNode{ ElemType data; //数据域 struct BitNode* lchild原创 2021-11-16 00:46:28 · 742 阅读 · 0 评论 -
循环链表的实现及常用操作
链表的常用操作实现及测试:#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>/*循环链表数据结构*/typedef int ElemType;typedef struct CLinkNode{ ElemType data; struct CLinkNode* next;} CLinkNode, * CLinkList;/*初始化循环链表*/int InitCLinkLis原创 2021-10-29 15:57:48 · 198 阅读 · 0 评论 -
链表的常用操作实现及测试
链表的常用操作实现及测试:单链表的创建及初始化节点插入节点删除节点查询节点修改链表排序链表的遍历并输出反转链表合并两个有序链表,使新链表仍保持有序删除单链表L中的重复元素代码(C语言):/*带头节点的单链表的常用操作实现及测试*/#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>/*数据结构*//*定义元素类型为int*/typedef int ElemTy原创 2021-10-27 01:16:54 · 689 阅读 · 0 评论 -
顺序表的常用操作实现及测试
顺序表的常用操作实现及测试:初始化并建立顺序表顺序表初始值输入按位置插入按位置删除按值查询按位置修改去除顺序表重复元素顺序表排序顺序表遍历及输出合并两个有序顺序表代码(C语言):/*动态顺序表的常用操作实现及测试*/#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#define INITSIZE 100 //顺序表初始容量#define INCREMENT原创 2021-10-24 01:07:22 · 4132 阅读 · 0 评论 -
括号匹配的检验
利用顺序栈进行括号匹配的检验:假设表达式中允许有三种括号:大括号、圆括号和方括号,其嵌套的顺序随意。请编写程序完成表达式中的括号匹配的检测。设计相应的测试数据对所编写的程序进行测试。代码(C语言):/*top为指针且指向栈顶元素的下一个位置*/#include <stdio.h>#include <stdlib.h>#define INITSIZE 100#define INCREMENT 20typedef char ElemType;typedef struct原创 2021-10-21 19:39:05 · 708 阅读 · 0 评论 -
队列的链式表示和实现
队列的链式表示和实现:编写一个程序实现链队列的各种基本运算,并在此基础上设计一个主程序,完成如下功能:初始化并建立链队列销毁链队列入队出队遍历链队列判断链队列是否为空清空链队列获取链队列长度获取链队列头元素代码(C语言实现)://链队列的基本操作#include<stdio.h>#include<stdlib.h>typedef int QElemType;/*链队列*/typedef struct QNode{ QElemType data原创 2021-10-21 19:23:35 · 1629 阅读 · 0 评论 -
队列的顺序表示和实现
队列的顺序表示和实现:编写一个程序实现顺序队列的各种基本运算(采用循环队列),并在此基础上设计一个主程序,完成如下功能:初始化队列入队出队判断队列是否为空清空队列销毁队列获取队列长度获取队头元素遍历队列代码(C语言实现)://循环队列及操作的算法实现(front为队头元素的当前位置,rear为队尾元素的下一个位置)#include<stdio.h>#include<stdlib.h>#define INITSIZE 10 /*队列的初始容量*/#d原创 2021-10-21 19:16:59 · 808 阅读 · 0 评论 -
栈的链式表示和实现
栈的链式表示和实现编写一个程序实现链栈(带头节点)的各种基本运算,并在此基础上设计一个主程序,完成如下功能:初始化链栈入栈出栈判断栈是否为空获取链栈长度取栈顶元素遍历链栈链栈置空代码(C语言实现):#include <stdio.h>#include <stdlib.h>typedef int ElemType;typedef struct Node{ ElemType data; struct Node* next;} Node, * Lin原创 2021-10-21 19:08:05 · 1525 阅读 · 0 评论 -
栈的顺序表示和实现
栈的顺序表示和实现:编写一个程序实现可动态增长容量的顺序栈的各种基本运算,并在此基础上设计一个主程序,完成如下功能:初始化顺序栈入栈出栈取栈顶元素遍历顺序栈清空顺序栈销毁栈判断栈空求栈的长度利用栈实现进制转换代码(C语言实现):/*top为指针且指向栈顶元素的下一个位置*/#include <stdio.h>#include <stdlib.h>#define INITSIZE 100#define INCREMENT 20typedef in原创 2021-10-21 19:01:58 · 1783 阅读 · 0 评论 -
线性表的顺序存储及运算的实现
一、线性表的顺序存储1、线性表的顺序存储原理线性表的顺序存储(Sequential Mapping,简称顺序表),是指用一组地址连续的存储单元按线性表元素之间的逻辑顺序,依次存储线性表的数据元素。数据元素的逻辑顺序和物理上的存储顺序是完全一致的,物理上存放在位置 i 的元素,就是按照逻辑顺序存储时的第 i 个元素。因此在顺序存储结构下不需要另外建立空间来记录各个元素之间的关系。顺序存储的线性表是一种随机存取结构,因为只要确定了存储线性表的起始位置,就可以随机存取表中的任意一个数据元素。2、顺序存储的线原创 2021-09-21 01:18:51 · 3472 阅读 · 0 评论 -
求一个正整数的因子个数
快速计算正整数N的因子个数:#include <iostream>using namespace std;int f(int n) //计算并返回正整数n的因子个数{ int ans = 0; for (int i = 1; i * i <= n; i++) { if (n % i == 0) { ans++; if (i * i != n) ans++; } } return ans;}int main(){ int N = 0; ci原创 2021-09-09 00:42:21 · 5512 阅读 · 0 评论 -
C语言--螺旋矩阵--蛇形矩阵--数独
题目:一、在n×n矩阵里填入1,2,3,…,n*n,要求:1.填成回形2.填成蛇形3.填写成将第1种顺时针旋转90度的回形矩阵例如n=4时的方阵如下图所示:1.常规回形矩阵#include <stdio.h>#include <stdlib.h>int main(void){ int n = 0, i = 0, j = 0; scanf("%d", &n); //输入行列数 //动态申请n行n列的二维数组,如果觉得麻烦根据题目要求申请足够大的也行原创 2021-09-04 04:05:12 · 1064 阅读 · 0 评论 -
C语言求排列组合和阶乘
关于C语言求排列数、组合数以及阶乘的实验记录:一、求排列数和组合数公式:以下公式中A(n,m)为排列数公式,C(n,m)为组合数公式。Cnm=n!m!(n−m)!=Anmm!=Cn−1m+Cn−1m−1Anm=n(n−1)(n−2)...(n−m+1)=n!(n−m)!Anm=n⋅An−1m−1=(n−m+1)⋅Anm−1\begin{aligned}&{C}_{n}^{m}=\frac{n!}{m!(n-m)!}=\frac{{A}_{n}^{m}}{m!}={C}_{n-1}^{m}原创 2021-08-28 17:50:43 · 5755 阅读 · 0 评论 -
C与C++程序设计学习笔记
C语言程序设计一、循环结构程序设计1、求s=1+2+3+……+98+99+100的值。#include <stdio.h>int main(void){ int s=0,i=0; for(i=1; i<=100; i++) { s+=i; } printf("%d\n", s); return 0;}2、求s=1+3+5+……+97+99的值。#include <stdio.h>int main(void){ int s=0,i=0;原创 2021-08-10 23:00:06 · 9242 阅读 · 1 评论
分享