- 博客(37)
- 收藏
- 关注
原创 删除单链表中的重复节点
系列文章目录文章目录系列文章目录前言一、题目描述二、c++代码1.删除无序链表中的重复多余节点2.读入数据总结前言删除单链表中重复节点一、题目描述删除单链表中的重复节点,分为如下几种情况:1、单链表无序,删除重复的多余节点,即重复的节点只保留一个2、单链表无序,删除重复的所有节点,即重复的节点全部删除3、单链表有序,二、c++代码1.删除无序链表中的重复多余节点代码如下:#include <iostream>#include <map>using name
2021-01-24 19:46:06
1648
原创 栈判断字符串中的括号是否匹配c++
系列文章目录文章目录系列文章目录前言一、题目描述二、c++代码1.顺序栈2.链栈总结前言《数据结构基础》c语言版 第2版,Ellis Horowitz著,朱仲涛译4.3节,page124,习题2一、题目描述使用栈判断字符串中的括号是否匹配二、c++代码1.顺序栈代码如下:#include<iostream>using namespace std;#define MaxSize 100typedef char datatype;typedef struct{
2021-01-24 14:39:40
2173
原创 栈判断字符串是否回文c++代码
系列文章目录文章目录系列文章目录前言一、题目描述二、c++代码1.顺序栈2.链表栈总结前言《数据结构基础》c语言版 第2版,Ellis Horowitz著,朱仲涛译4.3节,page124,习题1一、题目描述使用栈判断一个字符串是否回文二、c++代码1.顺序栈代码如下:#include<iostream>using namespace std;#define MaxSize 100typedef char datatype;typedef struct{
2021-01-19 20:12:05
2077
原创 归并两个链表
系列文章目录文章目录系列文章目录前言前言一、题目描述二、c++代码总结前言前言《数据结构基础》c语言版 第2版,Ellis Horowitz著,朱仲涛译4.2节,page120,习题7一、题目描述二、c++代码代码如下:#include <iostream>#include <stdio.h>#include <stdlib.h>using namespace std;typedef struct Node{ int data;
2021-01-19 16:45:31
114
原创 归并两个有序链表
系列文章目录文章目录系列文章目录前言一、题目描述二、c++代码总结前言《数据结构基础》c语言版 第2版,Ellis Horowitz著,朱仲涛译4.2节,page120,习题6一、题目描述令x=(x1,x2,…,xn)和y=(y1,y2,…ym)是两个链表,按数据域的非递减序排列。构造算法归并这两个链表,结果存储在新链表z中,z也按数据域的非递减序排列。在归并过程,表x和表y中的结点一一链到z中,要求不用临时结点。讨论算法的复杂度。二、c++代码代码如下:#include <iost
2021-01-18 20:05:44
580
原创 返回单链表中结点个数
系列文章目录文章目录系列文章目录前言一、题目描述二、c++代码总结前言《数据结构基础》c语言版 第2版,Ellis Horowitz著,朱仲涛译4.2节,page120,习题4一、题目描述编写函数返回链表中的结点个数二、c++代码代码如下:#include <iostream>#include <stdio.h>using namespace std;typedef struct listNode{ int data; struct list
2021-01-17 20:06:46
826
原创 删除单链表中指定元素的结点
系列文章目录文章目录系列文章目录前言一、题目描述二、c++代码总结前言《数据结构基础》c语言版 第2版,Ellis Horowitz著,朱仲涛译4.2节,page120,习题3一、题目描述在单链表中删除整数num结点二、c++代码代码如下:#include <iostream>#include <stdio.h>using namespace std;typedef struct listNode{ int data; struct list
2021-01-17 19:58:41
974
原创 在单链表中查找整数num,返回指向该结点的指针
系列文章目录文章目录系列文章目录前言一、题目描述二、c++代码总结前言《数据结构基础》c语言版 第2版,Ellis Horowitz著,朱仲涛译4.2节,page120,习题2一、题目描述在链表中查找整数num,如果num在表中,函数返回指向该结点的指针,否则返回NULL二、c++代码代码如下:#include <iostream>#include <stdio.h>#include <stdlib.h>using namespace std;
2021-01-17 18:14:24
471
原创 删除单链表中奇数号的结点
系列文章目录文章目录系列文章目录前言一、题目描述二、c++代码1.c++代码总结前言《数据结构基础》c语言版 第2版,Ellis Horowitz著,朱仲涛译4.2节,page120,习题5一、题目描述假设p指向一个单链表的头结点,编写函数,从表头开始,删除表中1,3,5,…,奇数号结点。讨论算法的复杂度。二、c++代码1.c++代码代码如下:#include <iostream>#include <stdio.h>#include <stdlib.h&
2021-01-17 16:57:49
1400
原创 迷宫问题(四方向)c++
系列文章目录文章目录系列文章目录前言一、题目描述二、c++代码1.使用栈,和八方向类似2.读入数据总结前言四个方向的迷宫问题一、题目描述定义一个二维数组:int maze[5][5] = {0, 1, 0, 0, 0,0, 1, 0, 1, 0,0, 0, 0, 0, 0,0, 1, 1, 1, 0,0, 0, 0, 1, 0,};它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。输入一个5 × 5的二
2021-01-13 19:15:12
1014
原创 迷宫问题(八方向)c++
系列文章目录文章目录系列文章目录前言一、题目描述二、c++代码1.使用栈2.递归总结前言八个方向的迷宫问题一、题目描述给定一个迷宫,左上角为入口,右下角为出口,求出行走路径。一共八个方向:东、南、西、北、东北、东南、西北、西南,分别记为E S W N NE SE NW SW。m*n的迷宫:0 1 1 1 0 1 1 11 0 1 0 1 0 1 00 1 0 0 1 1 1 10 1 1 1 0 0 1 11 0 0 1 1 0 0 00 1 1 0 0 1 1 0入口为左上角,
2021-01-13 11:20:59
4204
2
原创 leetcode-54,最大子序和
系列文章目录文章目录系列文章目录前言一、题目描述二、c++代码总结前言leetcode-54,最大子序和一、题目描述给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。二、c++代码代码如下:class Solution {public: int maxSubArray(vector<int
2021-01-10 16:40:40
80
原创 leetcode-35,搜索插入位置
系列文章目录文章目录系列文章目录前言一、题目描述二、c++代码总结前言leetcode-35,搜索插入位置一、题目描述给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0
2021-01-10 15:39:07
67
原创 leetcode-27,移除元素
系列文章目录文章目录系列文章目录前言一、题目描述二、c++代码总结前言leetcode-27,移除元素一、题目描述给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个
2021-01-10 15:10:39
57
原创 leetcode-26,删除排序数组中的重复项
系列文章目录文章目录系列文章目录前言一、题目描述二、c++代码总结前言leetcode-26,删除排序数组中的重复项一、题目描述给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的
2021-01-10 14:52:53
52
原创 leetcode-228,汇总区间
系列文章目录文章目录系列文章目录前言一、题目描述二、c++代码总结前言leetcode - 228,汇总区间一、题目描述给定一个无重复元素的有序整数数组 nums 。返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。列表中的每个区间范围 [a,b] 应该按如下格式输出:“a->b” ,如果 a != b“a” ,如果 a == b示例 1:输入:nums =
2021-01-10 14:16:40
65
原创 三对角阵的一维数组表示
系列文章目录文章目录系列文章目录前言一、题目描述二、c++代码总结前言《数据结构基础》c语言版 第2版,Ellis Horowitz著,朱仲涛译2.9节,page78,习题5一、题目描述三对角阵是除主对角线及其相邻上下两条对角线之外都是零元素的方阵,三条对角线中的元素可以按行存储在一维数组b中,a[0][0]对应b[0],编程实现在b中存取a[i][j],0<=i,j<n二、c++代码代码如下:#include<iostream>using namespace s
2021-01-09 22:32:39
1000
1
原创 下三角矩阵的一维数组表示
系列文章目录文章目录系列文章目录前言一、题目描述二、c++代码总结前言《数据结构基础》c语言版 第2版,Ellis Horowitz著,朱仲涛译2.9节,page78,习题3一、题目描述用一维数组存储下三角矩阵的非零元素二、c++代码代码如下:#include<iostream>using namespace std;const int n=5;const int total=n*(n+1)/2;int b[total];//初始化数组A[n][n]int a[n
2021-01-09 20:56:18
960
1
原创 矩阵鞍点c++
系列文章目录文章目录系列文章目录前言一、题目描述二、c++代码总结前言《数据结构基础》c语言版 第2版,Ellis Horowitz著,朱仲涛译2.9节,page78,习题2一、题目描述m*n矩阵的鞍点定义为a[i][j]既是第i行的最大值又是第j行的最小值二、c++代码代码如下:#include<iostream>using namespace std;int main() { int a[3][4] = {{3, 2, 3, 5},
2021-01-09 20:08:39
357
原创 返回字符串中第一次出现某字符的位置
系列文章目录文章目录系列文章目录前言一、题目描述二、c++代码1.返回某字符在字符串中第一次出现的位置2.返回指向字符串中某字符第一次出现的字符指针,不在则返回NULL总结前言《数据结构基础》c语言版 第2版,Ellis Horowitz著,朱仲涛译2.7节,page77,习题4一、题目描述编写函数strposl,参量是字符串string和字符character。函数返回一个整数,即在string中第一次出现character的位置。如果character不在string中,返回-1。不应调用s
2021-01-09 15:45:39
2907
原创 删除一个字符串中的指定字符
系列文章目录文章目录系列文章目录前言一、题目描述二、c++代码1.删除字符串中第一次出现的某字符2.延伸-删除字符串中某一个字符(每一次出现)总结前言《数据结构基础》c语言版 第2版,Ellis Horowitz著,朱仲涛译2.7节,page77,习题3一、题目描述编写函数strdel,参量是字符串string和字符character。删除string中第一次出现的character,最后返回string二、c++代码1.删除字符串中第一次出现的某字符代码如下:#include <
2021-01-09 15:13:15
593
原创 删除一个字符串中从某个位置开始的若干个字符
系列文章目录文章目录系列文章目录前言一、题目描述二、c++代码总结前言《数据结构基础》c语言版 第2版,Ellis Horowitz著,朱仲涛译2.7节,page77,习题2一、题目描述编写函数strndel,参量是一个字符串string和两个整数start、length。在string中删除start开始的length个字符,最后返回string二、c++代码代码如下:#include <iostream>#include "string.h"using namespa
2021-01-09 00:53:10
644
1
原创 统计字符串中不同字符出现的次数(频率)
https://blog.csdn.net/qq_34037046/article/details/85221622https://www.cnblogs.com/dongdong25800/p/10502542.html#include<iostream>#include <string.h>#include <map>using namespace std;int main() { string str="abcaaabbabc"; ma
2021-01-08 19:58:08
2841
原创 leetcode-1,twonum
https://blog.csdn.net/mbskypan/article/details/89113231暴力法:class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { for(int i=0;i<nums.size();i++) { for(int j=i;j<nums.size();j++)
2021-01-07 23:04:56
83
原创 字符串模式匹配
先比较模式串末尾字符的模式匹配#include<iostream>#include <string.h>using namespace std;int nfind(char const *string ,char const *pat){ int i,j; int start=0; int last_s=strlen(string)-1; int last_p=strlen(pat)-1; int endmatch=last_p;
2021-01-06 18:17:09
145
原创 稀疏矩阵相乘mmult
https://blog.csdn.net/du489380262/article/details/8798713?utm_source=blogxgwz6https://blog.csdn.net/m0_37787222/article/details/78347462#include<iostream>using namespace std;struct term { int row; //行,下标为0时指矩阵的行数 int col;
2021-01-06 16:36:00
215
原创 c语言动态分配内存
https://blog.csdn.net/qq_41071068/article/details/90741413?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control
2021-01-03 13:35:05
171
原创 c语言魔方阵
所谓“n-魔方阵”,指的是使用1~n2(2次方)共nn个自然数排列成一个nn的方阵,其中n为奇数;该方阵的每行,每列及对角线元素之和都相等,并为一个只与n有关的常数,该常数为n * (n*n + 1)/2。例如5-魔方阵,17 24 1 8 1523 5 7 14 164 6 13 20 2210 12 19 21 311 18 25 2 9其第一行,第一列及主对角上各元素之和如下:第一行元素之和:17+24+1+8+15=65第一列元素之和:17
2021-01-02 17:43:01
2041
原创 求一个集合所有子集组成的集合
令S是n个元素的集合,它的幂集是它所有子集的集合。例如,如果S={a,b,c},那么powerset{S}={{},{a},{b},{c},{a,b},{a,c},{b,c},{a,b,c}}。写出递归函数实现powerset{S}#include <iostream>using namespace std;void powerset(char *array,int a[],int index,int n){ if(index==n) { printf(
2021-01-02 14:21:45
1144
2
原创 hanoi塔c语言
hanoi塔描述:有三根柱子,64个直径不等的空心碟子套在第一根柱子上,下面的碟子都比上面的碟子大。传说一些和尚要把这些碟子从第一根柱子移到第三根柱子,移动时必须遵循以下规则:(1)一次只能移动一个碟子(2)大碟子不能放在小碟子上面写一个递归程序, 打印移动碟子的过程#include <iostream>using namespace std;void hanoi(int index,char x,char y,char z){ if(index==1)
2021-01-01 21:13:17
237
原创 fibonacci数列的循环版、递归版以及使用栈
fibonacci数定义为:f0=0,f1=1,以及当i>1时,fi=fi-1+fi-2.写出计算fi的c语言递归函数和循环函数循环版#include <iostream>using namespace std;int main(){ int n; printf("enter the number:\n"); scanf("%d",&n); int f[1000]; f[0]=0; f[1]=1; for(int
2021-01-01 18:39:56
301
原创 阶乘函数c语言
阶乘函数n!定义为:若n<=1,其值为1;若n>1,其值为n*(n-1)*...*2*1c语言循环版#include <iostream>using namespace std;int n;int main(){ printf("enter the number:\n"); scanf("%d",&n); int result=1; if(n<=1) result=1; else { .
2021-01-01 18:26:18
1597
1
原创 判定正整数n是否等于其所有因子的和
给定正整数n,判定n是否等于其因子的总和,即判定n是否等于所有t的和,t可以整除n,1<=t<n#include <iostream>#include <vector>using namespace std;int main(){ int n; printf("please enter the number n:\n"); scanf("%d",&n); int sum=0; vector<int >
2020-12-31 14:55:14
1014
原创 horner规则求解多项式
#include <iostream>using namespace std;int horner(int *coef,int n,int x){ int result = coef[n-1]; for(int i=1;i<n;i++) { result = result*x+coef[n-1-i]; } return result;}int main(){ int a[5]={3,4,5,6,7}; .
2020-12-31 12:29:01
430
1
原创 写一个c程序,按升序打印x,y,z的整数值
#include <iostream>using namespace std;int main(){ int x,y,z; printf("x:"); scanf("%d",&x); printf("y:"); scanf("%d",&y); printf("z:"); scanf("%d",&z); if(x<y) { if(x<z) {
2020-12-31 11:09:19
223
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人