
C语言程序
Joyce--
这个作者很懒,什么都没留下…
展开
-
线程池的概念及实现(文件夹的拷贝)
是一种多线程的处理方式,处理方法是将"生产者"线程提出的任务添加到"任务队列",创建一些线程自动的去完成"任务队列"上面的任务。 但是当我们需要创建大量的线程,并且线程都是去执行一个非常简单的任务,然后线程自动销毁的情况,上面的模式就不适用了。而且当任务比较多的时候,可以有函数接口去增加线程的数量,当任务比较少的时候,你可以有函数接口去减少线程数量.线程固定的执行一个"任务分配函数",当"任务队列"没有任务的时候,让线程自动的休眠(等待一个条件变量)可能创建的线程太多了(发现一个文件就会创建一个线程)原创 2022-09-23 17:11:47 · 1009 阅读 · 1 评论 -
关于二叉树的一些练习
代码】关于二叉树的一些练习。二叉树的最大值、高度,二叉排序树平衡操作、输出度为1的结点、层次遍历求二叉树的宽度……原创 2022-07-16 10:48:00 · 196 阅读 · 0 评论 -
HASH表的创建(C语言)
HASH表的创建原创 2022-07-11 20:13:06 · 2315 阅读 · 0 评论 -
二叉排序树的增删改查
二叉排序树的增删改查SqQue.c#include<stdio.h>#include<stdlib.h>#include "SqQue.h"/* 功能:初始化队列 参数:@maxl:最大长度 返回值:顺序队列的头指针*/SqQue *InitSqQue(int maxl){ SqQue *q = malloc(sizeof(*q)); q->data = malloc(maxl * sizeof(element)); q->max_len原创 2022-05-24 16:56:34 · 241 阅读 · 0 评论 -
C语言练习题
C语言练习题一、环行取数环行取数,逆时针输出数组数据/* 功能:环行取数,逆时针输出数组数据 输入:1 2 3 4 5 6 7 8 9 输出:1 4 7 8 9 6 3 2 5*/#include<stdio.h>int main(){ int m,n; //数组的行、列 scanf("%d%d",&m,&n); int a[m][n]; int i,j; //用于循环 for(i = 0;i < m;i++)原创 2022-05-13 21:10:07 · 231 阅读 · 0 评论 -
队列的基本操作(入队、出队、清空……)
队列的基本操作(入队、出队、清空……)SqQue.h#ifndef __SQQUE_H__#define __SQQUE_h__typedef int element;typedef struct SqQue{ element *data; //动态定义存储空间大小 int max_len; //存放最多的存储元素个数 int now_len; //当前存放的元素个数 int rear; //队尾下标,下一个入队元素的下标 int f原创 2022-05-06 17:53:48 · 3712 阅读 · 2 评论 -
链式栈的基本操作(入栈、出栈、……)
链式栈LinkStack.h#ifndef __LINKSTACK_H__#define __LINKSTACK_H__#define elemnet inttypedef struct SNode{ element data; //保存栈中的一个元素 struct SNode *next; struct SNode *prev;}SNode;typedef struct LinkStack{ SNode *first; //栈底指针原创 2022-05-03 20:35:03 · 1307 阅读 · 0 评论 -
顺序栈的基本操作(入栈、出栈、遍历、清空……)
顺序栈基本定义栈是仅限定在表尾进行插入和删除的操作的线性表LIFO:last in first out–后进先出一片连续的存储单元SeqStack.h#ifndef __SEQSTACK_H__#define __SEQSTACK_H__#define element xtypedef struct SeqStack{ element *data; //data指向的空间来存储栈中的元素,动态数组,可以不事先定义大小 element maxlen; //栈原创 2022-05-02 16:25:12 · 1994 阅读 · 2 评论 -
双向循环链表增、删、改、查
双向循环链表增、删、改、查cycle.c#include<stdio.h>#include<stdlib.h>#include"cycle.h"//先创建一个空的双向循环链表biList *create(void){ biList *l = malloc(sizeof(*l)); l->first = NULL; return l;}/* 功能:增加一个数据,链表保持升序 参数:@l:头结点;@p:要插入的结点 注意:要考原创 2022-04-26 15:50:30 · 767 阅读 · 0 评论 -
双向链表的增删改查
双向链表的增删改查doubleist.c#include<stdio.h>#include<stdlib.h>#include"doublelist.h"//先创建一个空的双向链表,头结点指向空biList *create(){ biList *l = malloc(sizeof(*l)); l->first = NULL; l->last = NULL; return l;}/* 功能:增加结点,保持升序 参数原创 2022-04-22 18:21:28 · 1137 阅读 · 0 评论 -
删除带头结点链表中最小值的结点
删除带头结点链表中最小值的结点deletemin.c#include<stdio.h>#include<stdlib.h>#include"deletemin.h"LinkedList *create(void){ LinkedList *l = malloc(sizeof(*l)); l->first = NULL; l->last = NULL; element x; printf("请输入数据,以0结尾\n"原创 2022-04-20 20:24:28 · 1281 阅读 · 0 评论 -
带头结点的单链表删除数据
带头结点的单链表删除数据LLWHdelete.c#include<stdio.h>#include<stdlib.h>#include"LLWHdelete.h"LinkedList *create(void){ LinkedList *l = malloc(sizeof(*l)); l->first = NULL; l->last = NULL; return l;}void insert(LinkedList *原创 2022-04-18 14:27:21 · 2378 阅读 · 0 评论 -
带头结点的单链表插入数据
带头结点的单链表插入数据什么是头结点头结点是用来管理链表的结点,这个结点中一般包括常用的管理链表的数据对象,如:指向链表的第一个结点的指针,指向链表最后一个结点的指针,结点个数……代码实现LLWHinsert.c#include<stdio.h>#include<stdlib.h>#include"LLWHinsert.h"//先创建一个空的链表,返回头结点LinkedList *create(void){ LinkedList *l = ma原创 2022-04-13 20:57:37 · 2739 阅读 · 0 评论 -
关于单链表的一些练习
一、在单链表中删除所有值为x的结点,输出删除后的单链表二、逆置单链表一、delete.c#include<stdio.h>#include<stdlib.h>#include"delete.h"Node *create(){ Node *first = NULL; Node *last = NULL; element x; printf("请输入数据,0为结束标志。"); while(1) {原创 2022-04-12 20:29:50 · 314 阅读 · 0 评论 -
链表的增、删、改、查
链表的增、删、改、查linklist.c#include<stdio.h>#include<stdlib.h>#include"linklist.h"/* 功能:创建链表 返回值:链表的头指针*/Node *create(){ Node *first = NULL; //给头、尾结点的地址初始值赋空值、因为还不存在 Node *last = NULL; element x; //输入的数据 print原创 2022-03-30 15:48:51 · 886 阅读 · 0 评论 -
链表的创建 、头插法、尾插法
链表的创建 、头插法、尾插法linklist.c#include<stdio.h>#include<stdlib.h>#include "linklist.h"/* 功能: 创立一个有数据的链表 返回值: 头指针 保存链表第一个结点*/Node *create(){ Node *first = NULL; //还未创建时,第一个结点和最后一个结点都为NULL Node *last = NULL; element x;原创 2022-03-29 13:25:17 · 214 阅读 · 0 评论 -
一些关于函数的练习2(含答案)
一些关于函数的练习2(含答案)求字符串的长度判断回文字符串汉诺塔一、求字符串的长度 键盘输入一串字符串,编写函数求字符串的长度。 字符串与指针是分不开滴啦,所以我们可以借助指针来求。/* 功能:求字符串的长度 参数:@a:保存字符串的数组;@*p:接收字符串数组的指针 返回值:长度*/#include<stdio.h>/*int fun(char *s) //方法1{ char *t = s; //t也指向数组原创 2022-03-25 19:44:16 · 95 阅读 · 0 评论 -
关于分支循环的一些练习(含答案)
关于分支循环的一些练习(含答案)9*9乘法表某日是那年的第几天分解质因数一、9*9乘法表 我们小学应该都背过99乘法表,用循环很方便做,但是怎么打印成乘法表的样子呢? 我们就要结合制表符与回车的应用啦!/* 功能:打印9*9乘法表 参数:x行y列*/#include<stdio.h>int main(){ int x,y; for(x = 1;x < 10;x++) //1~9循环 { for(y =原创 2022-03-24 18:21:27 · 290 阅读 · 0 评论 -
一些关于函数的练习(含答案)
一些关于函数的练习(含答案)第一个人年龄为10岁,接下来后面一个人比前面一个人大2岁,试输入第几个人,求得其年龄。求一个数的阶乘进制转换一、第一个人年龄为10岁,接下来后面一个人比前面一个人大2岁,试输入第几个人,求得其年龄。/* 功能:第一个人为10岁,后一个人都比前一个人大两岁,求第几人的年龄 参数:x为人数;y为年龄; 返回值:年龄*/#include<stdio.h>int age(int n) //用n来接收{ if(n == 1)原创 2022-03-23 15:15:17 · 223 阅读 · 0 评论 -
一些数组练习(含答案)
一些数组练习(含答案)打印杨辉三角前十行求鞍点(行最大,列最小)求山顶元素(比前、后、左、右的数都要大)1、打印杨辉三角/* 功能:打印杨辉三角前十行 参数:i行j列 返回值:杨辉三角前十行*/#include<stdio.h>int main(){ int a[10][10] = {0}; //初始化数组,因为是前十行所以设置为10 int i,j; //用来循环 //先打印原数组 printf("运算前数组元素是:\n"); for(i =原创 2022-03-22 14:25:19 · 570 阅读 · 0 评论