c 语言
night 猿
这个作者很懒,什么都没留下…
展开
-
判断一个数是否为素数(质数) c语言
质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数。最小的质数是2,它也是唯一的偶数质数。原理:number 只需被 (2 ~ 根号下number)之间的每一个整数去除就可以了(包括 根号下number这个数)。如果 nummber不能被 (2 ~ 根号下number) 间任一整数整除,number 必定是素数#include"stdio.h"#include"math.h"main(){ int number,i,n; printf("请输入一个正整数:原创 2020-09-08 13:48:41 · 37556 阅读 · 6 评论 -
链栈 数据结构 c语言
这是栈的结构:进栈示意:出栈示意://这是一个链栈,注意与顺序栈的区分#include"stdio.h"#include"stdlib.h"#define maxsize 100typedef struct snode{ int data; struct snode *next;//指向自己的相同类型}link;void menu(void){ printf("\n///////////////////////////////////////////////////////原创 2020-08-05 13:13:32 · 200 阅读 · 0 评论 -
十进制转八进制 c语言
原理:首先在栈底放入哨兵,接着用算法求出余数,把余数依次放入栈中, 然后取栈顶元素,并且出栈栈顶元素。//十进制转八进制#include"stdio.h"#include"stdlib.h"#define maxsize 100typedef struct { int data[maxsize]; int top;}link;void initializa(link *s)//初始化函数{ s->top=0;}int empty(link *s)//判栈空函数原创 2020-08-03 16:56:02 · 7216 阅读 · 3 评论 -
栈:进栈,出栈,取栈顶元素,判断栈是否为空,置空栈,输出元素个数等 (c语言,数据结构)
栈:进栈,出栈,取栈顶元素,判断栈是否为空,置空栈,输出元素个数等注:用switch进行选择操作。//栈:进栈,出栈,取栈顶元素,判断栈是否为空,置空栈,输出元素个数等。#include"stdio.h"#define maxsize 100typedef struct{ int datas[maxsize]; int top;}link;void menu(void){ printf("\n/////////////////////////////////////////////原创 2020-07-17 13:21:30 · 5963 阅读 · 0 评论 -
合并两个顺序表(将两个数组中的数值按由小到大的顺序放到第三个数组中)数据结构
原理:排序就是两段代码相互比较,当a中的第 1个小于b中的第1个,就让c中的第1个等于a中的第1个。然后a中的第2个与b中的第1个比较,若是b中的第1个比a中的第2个小,就让c中的第2个等于b中的第一个。再之后就是a中的第2个与b中的第2个相比较,让小的排在前面,依此类推。直到a或b中的一个结束,也就是无值可比的时候,另一方就不用再比较大小(a或b序列无法和自己本身比较大小)直接往c中放就行了。核心算法:void sort_merge(link *a,link *b,link *c)//排序,合并函.原创 2020-07-16 13:28:08 · 1565 阅读 · 0 评论 -
顺序表上的元素的插入,删除,定位 (c语言)
1.顺序表上的元素的插入核心:#include"stdio.h"#define typeone int //关键字类型#define maxsize 100typedef struct { typeone data[maxsize]; int last;}link;void shuchu(link *head)//输出函数{ int i; link *q=head; printf("序列为:\n"); for(i=1;i<=q->last;i++) print原创 2020-06-26 17:37:35 · 1005 阅读 · 0 评论 -
边插入边排序(有序表的插入) c语言
#include"stdio.h"#include"stdlib.h"//颜色属性#define maxsize 100typedef struct { int data[maxsize]; int last;}link;void shuchu(link *head){ int i; link *q; q=head; printf("这个序列为:\n"); for(i=1;i<=q->last;i++) { printf("%d\t",q->data[i原创 2020-06-26 09:51:03 · 1351 阅读 · 0 评论 -
删除元素值相同的有序/无序单链表
删除带头结点的元素值有序排列的单链表注:(1).设置指针p最初指向第1个结点,当P的指针域不为空,既P不是最后一个结点时进入循环体内进行判断。(2).在循环过程中判断P所指的结点的后继q是否与P的数据域相同,如果相同则删除q;不同则说明了链表中没有与p的数据域相同的结点,则P后移;#include"stdio.h"#include"stdlib.h"typedef struct node{ int data; struct node *next;//指向和自己类型相同的空间}link原创 2020-06-22 16:38:13 · 335 阅读 · 0 评论 -
建立一个带头结点的元素值递增有序的单链表(边插入边排序) c语言
建立一个带头结点的元素值递增有序的单链表(边插入边排序) c语言//建立一个带头结点的元素值递增有序的单链表#include"stdio.h"#include"stdlib.h"typedef struct node{ int data; struct node *next;//struct node *类型,指向node本身;}link;link *paixu(link * head){ link *t,*p,*q; int x; t=(link *)malloc(sizeo原创 2020-06-21 20:58:28 · 4187 阅读 · 0 评论 -
c语言 快速排序
快速排序的:原理:若序列中有n个元素,降低一个数据作为支点,将它放在表中合适的位置。以支点为界,序列分成两部分。其中左边数据小于等于支点,右边数据大于等于支点。然后,对左右两部分分别进行递归处理,直至排好序为止。算法:将至点放在合适的位置—划分算法1.设两个指针,i和j,开始分别指向表的开始与结束,某一时刻,支点或在a处(开始时),或在j处。(1)支点在i处:若r[i]<=r[j],两者位置合适,j减1;否则,两者位置不合适,r[i]与r[j]对换,i加1;(2)支点在j处:若r[i]原创 2020-06-09 18:11:51 · 413 阅读 · 0 评论 -
c语言 冒泡排序与简化
冒泡排序适用于以下情况:1.数组基本有序2.数据量较小//**以下为普通冒泡排序,冒泡排序不是最省时间的方法,相当费时间**。#include"stdio.h"#define maxsize 100#define keytype inttypedef struct { keytype key;}link;void shuchu(link *r,int n){ int i; printf("排序后:\t"); for(i=0;i<n;i++) printf("%d\t"原创 2020-06-09 12:54:58 · 392 阅读 · 0 评论 -
c语言 插入排序
//在顺序表中插入一个数,插完仍有序//这个表是边插入边排序,失败的时候加了红色#include"stdio.h"#include"stdlib.h"//颜色#define maxsize 100typedef struct{ int datas[maxsize]; int last;}QWE;///////////////////////////////////////////////////void shuchu(QWE *a){ int i; printf("为\n");原创 2020-06-07 10:33:21 · 212 阅读 · 0 评论 -
c语言 直接插入排序
#include"stdio.h"#define typeone int#define maxsize 100typedef struct { typeone key;}link;void insertzj (link *r,int n){ int i,j; for(i=2;i<=n;i++) { r[0]=r[i];//r[0]原本不放入任何东西,作为一个放数值的灵活的踏板 j=i-1; while(r[0].key<r[j].key) { r[原创 2020-06-04 09:17:37 · 122 阅读 · 0 评论 -
链表头插法,尾插法以及带头结点输出,不带头结点输出
头插法#include"stdio.h"#include"stdlib.h"typedef struct we{ int data; struct we *next;}qwe;void shuchu(qwe *head){ qwe *p; printf("不带头结点的链表为:\n");//注意printf的次序 p=head; for(;p!=NULL;) { printf("%d\t",p->data); p=p->next; } printf("\n"原创 2020-06-01 16:35:07 · 341 阅读 · 0 评论 -
c 语言 二分查找
#include"stdio.h"#define maxsize 100#define typeo int//关键字类型typedef struct{ typeo key;}link1;typedef struct{ link1 r[maxsize]; int len;}link2;int search_two(typeo k,link2 str)//主体函数{ int low,mid,high; low=1; high=str.len; while(low<=hig原创 2020-05-26 14:27:46 · 130 阅读 · 0 评论