![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构和算法
常用数据结构和算法
qq_27182175
这个作者很懒,什么都没留下…
展开
-
(一)链表学习之简单链表基本认识
1.简单静态链表定义struct Node{int num;struct Node *pNext};int main(){ struct Node *p=NULL;//定义头指针指向节点 struct Node n1,n2,n3,n4,n5; n1.num=1; n2.num=2; n3.num=3; n4.num=4; n5.num=5; p=&n1; n1.pNext=&n2;//实现链表的串联 n2.pNext=&n3; n3.pNext=&原创 2021-05-12 16:28:21 · 198 阅读 · 0 评论 -
(三)链表分类
1.简介链表作为C语言中的一种基础数据结构,在我们日常开发中用的不多,但是在操作系统里面是随处可见。链表好比一个原型的晾衣架,上面有很多钩子,狗子首尾相连。链表也是,链表由节点(node)组成,节点之间首尾相连。2.链表分类2.1单向链表:前一个结点都有一个箭头指向后一个节点,首尾相连,组成一个圈。节点本身必须包含一个节点指针,用于指向下一个节点,同时还可以携带数据2.2双向链表3....原创 2019-09-29 16:03:52 · 2013 阅读 · 0 评论 -
约瑟夫环问题
用链表是最好的//用于标记人员是否出列,0没有出列,1出列unsigned char flag[20];//按出列顺序记录人员编号unsigned char result[20];//起始人员编号,n总人数,m报数上限int joseph(int start, int n, int m){ int i = 1; int k = start; while (1) { if (flag[k] != 1)//跳过出列人员 { if (i == m) return k;/原创 2021-01-21 09:01:58 · 66 阅读 · 0 评论 -
6174问题
#include<stdio.h>#include<stdlib.h>void select_sort(int data[], int len){ for (int i = 0; i < len; i++) { for (int j = i + 1; j < len; j++) { if (data[i] > data[j]) { int temp = data[i]; data[i]=data[j];原创 2021-01-21 08:57:18 · 76 阅读 · 0 评论 -
队列两种实现方式
队列1.数组方式2.链表方式1.数组方式#include<stdio.h>#include<stdlib.h>#define N 100#define datatype charstruct queue { datatype data[N]; int front;//头 int rear;//尾};typedef struct queue QUEUE;void initQUEUE(QUEUE *sq){ sq->front = sq->原创 2021-01-15 17:35:36 · 98 阅读 · 0 评论 -
栈的两种实现方式
栈1.数组方式2.链表方式1.数组方式#include<stdio.h>#include<stdlib.h>//先进后出,数组实现的栈有大小限制,会栈溢出//可配合循环实现递归#define N 100struct stack { int top; int data[N];};struct stack mystack = { -1,{0} };int isempty()//1空,0非空{ if (mystack.top == -1) { re原创 2021-01-15 17:32:32 · 122 阅读 · 0 评论 -
(二)链表学习之模块化处理
动态链表1.动态链表概念2.动态链表操作接口2.1数据结构定义2.1添加节点2.2显示节点数据2.3逆转节点2.4查找节点2.5查找并修改节点数据2.6获取节点个数2.7删除所有节点2.7删除指定节点2.8根据节点,头部插入2.8根据节点,尾部插入2.9节点排序2.10主程序1.动态链表概念动态链表就是由malloc分配内存2.动态链表操作接口2.1数据结构定义struct Student { int num;//编号 float score;//成绩 struct Student* nex原创 2021-01-15 16:54:33 · 164 阅读 · 0 评论 -
关于算法的一些基础知识
算法的特点总结总结总结1.有效性,算法中的每一个步骤都应该能有效执行,并得到确定的结果2.确定性,每一个步骤都应该是确定的,不应该含糊不清3.有穷性,包含有限的步骤4.有0或者多个输入,输入指的是执行算法时从外界获取的信息5.有1或者多个输出...原创 2020-12-24 15:03:22 · 159 阅读 · 0 评论 -
递归算法分析
递归算法分析1.斐波那契数列(Fibonacci sequence)1.1斐波那契数列定义1.2递归实现1.3时间复杂度分析1.斐波那契数列(Fibonacci sequence)1.1斐波那契数列定义F(n)=n (n=0,1)F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)1.2递归实现int fib(int n){ if(n<2) return n; else return fib(n-1)+fib(n-2);}int main(void){原创 2020-12-20 17:47:04 · 71 阅读 · 0 评论