数据结构
Youth009
喵星人的夏天睡不醒!!
展开
-
尾插法建立单链表
`尾插法建立单链表:每次将新生成的结点插入到链表后面,使其成为新的表尾结点编写一个函数,将键盘输入的整数序列依次存入初始为空的单链表中,函数返回新建单链表第一个结点地址【分析】建立单链表head,可以从空表开始,依次将新生成的结点插入到链表中,为统一处理,我们将每次将新生成的结点插入到链表后面,使其成为新的表尾结点,我们把这种方式称为尾插法建立单链表。为操作方便,我们可以增设一个表尾指针tail,时刻指向单链表的表尾结点。#include <stdio.h>#include <st原创 2021-03-24 16:54:32 · 6482 阅读 · 0 评论 -
找连续数字字符
输入一个字符串,内有数字和非数字字符,如:ak123x456 17960?302gef4563,将其中连续的数字作为一个整体,依次存放到一数组a中,例如123放入a[0],456放入a[1],… …。编程统计其共有多少个整数,并输出这些数。(假设连续整数小于3276#include<bits/stdc++.h>using namespace std;int a[50];//定义在main函数外边的数组不用初始化char str[200];//且全局变量存储在堆空间中,局部变量存储在栈空间原创 2021-04-15 23:04:07 · 182 阅读 · 0 评论 -
个位数排序(空间换时间)
/*请结合下题,思考如何用空间换时间。设计尽可能快的算法void partion(int a[],int n,int b[]),将存储在整型数组a中的n个整数按以下规则存放到等长的数组b中,使个位数为0的数据存放到b的最前面,个位数为1的数据存放到个位数为0的数据后面,个位数为2的数据存放到个位数为1的数据后面,依次类推,个位数为9的数据放到b的最后面。(请简要说明算法思想,并分析所采用算法的时间复杂度)*/思路:来自zdw大佬~~#include <bits/stdc++.h>u原创 2021-04-15 21:07:01 · 1159 阅读 · 0 评论 -
约瑟夫环问题(循环单链表+删除结点)
约瑟夫环问题思路:首先建立循环链表,再用两个for循环,外循环遍历n,内循环遍历k,删除到达k的那个数字,直到n个人全部出去结束循环(主要建循环链表和删除结点)#include <stdio.h>#include <malloc.h>typedef struct node//定义结构体{ int number; struct node *next;}Lnode,*Linklist;//两个结构体名Linklist startri原创 2021-04-12 21:39:08 · 483 阅读 · 0 评论 -
快速KMP算法模板
KMP算法模板#include <stdio.h>#include <stdlib.h>typedef char * string;void get_next(string T,int *next){ int j=0; int i=0; next[1]=0; while(i<T[0]) { if(0==j||T[i]==T[j]) { i++; j++; next[i]=j; } else { j=next[原创 2021-04-07 23:59:44 · 73 阅读 · 0 评论 -
数据结构头文件(基础知识)
#include <stdio.h>#include <stdlib.h>///* 链表实现的头文件,文件名slnklist.h *///typedef int datatype;typedef struct link_node{datatype info;struct link_node *next;}node;typedef node *linklist;///函数名称:creatbystack() //函数功能:头插法建立单链表原创 2021-03-23 17:58:22 · 3233 阅读 · 0 评论 -
迷宫问题
C++小白利用栈解决迷宫问题迷宫问题是C或C++类竞赛中常见的问题,需要从大量的路径信息中挑选出正确路径,这就要求程序能快速读取数据并进行判断。栈自然成为解决这类问题的首选途径。问题中的迷宫蓝色圈为起点,绿色为终点实现代码先定义储存路径信息的栈和可行走方块的结构接下来是寻找路径的函数由于需要找到正确路径后迅速退出函数,所以此处用有两个返回值的bool而不是void再是主函数#include<iostream>#include<malloc.h>#define m原创 2021-03-17 17:47:22 · 88 阅读 · 0 评论