
C语言与数据结构
本专栏主要为C语言实现的各类算法等基础知识
五角钱的程序员
这个作者很懒,什么都没留下…
展开
-
数据结构链表基本操作(创建,遍历,插入数据,删除数据,排序,判断是否为空,求链表长度)
#include <stdio.h>#include <malloc.h>#include <stdlib.h>typedef struct Node{ int data;//数据域 struct Node * pNext;//指针域 }NODE, *PNODE; //NODE等价于struct Node, PNODE相当于struct Node ...原创 2020-02-16 14:36:04 · 514 阅读 · 0 评论 -
选择排序(SelectSort)
文章目录选择排序1.基本思想2.过程描述3.操作方法4.代码选择排序从算法逻辑上看,选择排序是一种简单直观的排序算法,在简单选择排序过程中,所需移动记录的次数比较少。1.基本思想选择排序的基本思想:比较+交换在待排序的一组数据中,选出最小(最大)的一个数与第一个位置的数交换,然后在剩下的数中,再找最小(最大)的数与第二个位置的数交换位置,依次类推,直到第N-1个元素与第N个元素交换位置...原创 2020-02-29 12:33:06 · 724 阅读 · 0 评论 -
动态分配内存与指针运用
#include <stdio.h>#include <malloc.h> int main(){ int a[5]={4,10,2,8,6}; int len; printf("请输入你需要分配数组的长度:len="); scanf("%d",&len); int * pArr=(int *)malloc(sizeof(int) *le...原创 2020-02-17 13:53:44 · 567 阅读 · 0 评论 -
for和if嵌套使用
# include <stdio.h>int main(){ int i; int sum = 0; for (i=3; i<=12; i++) { if (i%3 == 0) { sum = sum + i; } } printf("sum = %d\n", sum); return 0;}原创 2020-02-17 12:26:36 · 8673 阅读 · 1 评论 -
冒泡排序(bubblesort)
0.如果遇到相等的值不进行交换,那这种排序方式是稳定的排序方式。1.原理:比较两个相邻的元素,将值大的元素交换到右边2.思路:依次比较相邻的两个数,将比较小的数放在前面,比较大的数放在后面。(1)第一次比较:首先比较第一和第二个数,将小数放在前面,将大数放在后面。 (2)比较第2和第3个数,将小数 放在前面,大数放在后面。 … (3)如此继续,知道比较到最后的两个数,...原创 2020-02-17 11:49:09 · 315 阅读 · 0 评论 -
数组指针运用(Array_point)
#include <stdio.h>int main(){ int a[5]={6,2,3,91,5}; a[3]=*(a+3); printf("%p\n",a+1); printf("%p\n",a+2); printf("%d\n",*(a+3)); return 0;}#include <stdio.h>void Show_Ar...原创 2020-02-16 22:09:50 · 684 阅读 · 0 评论 -
8的阶层
# include <stdio.h>int main(){ int i = 1; int j = 2; while (j <= 8) { i = i * j; j = j + 1; } printf("%d ", i); return 0;}原创 2020-02-16 21:56:26 · 660 阅读 · 0 评论 -
求出1-1/2+1/3-1/4…..1/100的和
# include <stdio.h>int main(){ int sign =1; double deno = 2.0, sum = 1.0, term; while (deno<100) { sign = -sign; term = sign/deno; sum = sum + term; deno = deno +...原创 2020-02-16 20:43:50 · 4372 阅读 · 0 评论 -
double占8个字节 1个字节是8位,1个字节一个地址
# include <stdio.h>int main(){ double *p; double x=66.6; p=&x;//x占8个字节 1个字节是8位,1个字节一个地址 double arr[3]={1.1,2.2,3.3}; double *q; q=&arr[0]; printf("%p\n",q); q=&...原创 2020-02-16 20:35:29 · 2476 阅读 · 0 评论 -
栈的基本操作(创建栈,压栈,出栈,遍历栈,清空栈,判断是否为空栈)
#include <stdio.h>#include <malloc.h>#include <stdlib.h>typedef struct Node{ int data; struct Node *pNext;}NODE,* PNODE;typedef struct Stack{ PNODE pTop; PNODE pBottom;}S...原创 2020-02-16 19:46:27 · 1446 阅读 · 0 评论 -
1到100递归相加实现
#include <stdio.h>long f(long n){ if(1==n) return 1; else return f(n-1)+n;} int main(){ printf("%ld",f(100)); return 0;}原创 2020-02-15 17:38:12 · 1275 阅读 · 0 评论 -
函数调用(A函数调用B函数)
#include <stdio.h>int f(int n){ n+=2; return n;} int main(){ int val; val=f(5); printf("val=%d\n",val); return 0; } 输出:val=7#include <stdio.h>int g(int);int f(int n){ if(...原创 2020-02-15 17:46:31 · 1561 阅读 · 0 评论