![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构基础
对大二数据结构课程的笔记记录
三寸雪
这个作者很懒,什么都没留下…
展开
-
顺序表、单向链表和双向链表
顺序表和单向链表1.顺序表2.链表1.顺序表实现代码://#pragma once //作为头文件时加上这行#include<stdio.h>#define LIST_MAXSIZE 50 //顺序表最大能存的元素个数typedef int DataType ; //元素的数据类型typedef struct { DataType list[LIST_MAXS...原创 2019-11-24 22:15:06 · 682 阅读 · 0 评论 -
单向循环链表和双向循环链表
单向循环链表和双向循环链表1.单向循环链表2.双向循环链表关于顺序表、单向链表和双向链表请将鼠标移步 此处点击1.单向循环链表代码实现://#pragma once //作为头文件时加上这行#include<stdio.h>#include<stdlib.h>#include<malloc.h>typedef int DataType;t...原创 2019-11-25 11:58:10 · 2293 阅读 · 0 评论 -
顺序栈和链栈
以下代码没有使用模板类(只以int为例)且没有使用c++的类的思想,仅以结构体1.顺序栈#include<iostream>#define Maximun 1000 //预设栈的大小 using namespace std;struct my_stack{ int *top; int *base;};bool creat_stack(my_stack &...原创 2019-04-05 14:43:49 · 572 阅读 · 0 评论 -
队列 (顺序循环队列和链式队列)
循环队列#include<iostream>#define MAXIMUN 1000using namespace std; typedef struct queue_node //循环队列 { int* data; //记录队列的元素个数 int front,rear,count; //记录队头和队尾元素下标}queue;void init_queue(...原创 2019-04-12 23:50:04 · 1028 阅读 · 0 评论 -
链表:查找链表倒数第k个数
链表:查找链表倒数第k个数#include<iostream>using namespace std;typedef struct stu{ int num; stu* next;}node,*nodelist;nodelist creat_list(nodelist L){ int n; cout<<"请输入要添加的学生人数"<<end...原创 2019-04-05 14:31:19 · 475 阅读 · 0 评论 -
删除链表中data的绝对值相等的结点(除第一个)
用单链表保存m个整数,结点的结构为(data,next),且|data|≤n(n为正整数)。现要求设计一个时间复杂度尽可能高效的算法,对于链表中data的绝对值相等的结点,仅保留第一次出现的结点而删除其余绝对值相等的结点。/*单链表中保存M个整数,设计一个时间复杂度尽可能高效的算法,对于链表中绝对值相等的元素(|data|<n)(假设此题中n=100),只保留第一次出现的节点,删除其...原创 2019-04-05 14:34:44 · 3000 阅读 · 0 评论 -
利用快慢指针返回中间结点
快慢指针是指设计两个指针,p1,p2,p1一次往后移1,p2往后移2(比1大),即p2指针始终比p1走得快,当p2走到末尾,为空时,p1即为链表中间节点,当结点为偶数时,中间结点为中间两个结点的前一个#include<iostream>using namespace std;typedef struct stu{ int num; stu* next;}node,*nod...原创 2019-04-05 14:39:20 · 296 阅读 · 0 评论 -
中缀表达式转后缀表达式
中缀表达式转后缀表达式规则:从左到右遍历中缀表达式的每个数字和符号,若是数字就输出,即成为后缀表达式的一部分若是符号,则根据优先级进行压栈出栈1.若栈为空,直接压栈2.读取左括号直接压栈3.读取右括号就持续出栈(成为后缀表达式的一部分),直到遇见左括号,将左括号出栈(不构成后缀表达式)4.读取当前符号优先级高于栈顶的,将当前符号压栈。(乘除优先加减)5.若读取符号优先级低于或等于栈...原创 2019-08-02 15:15:49 · 317 阅读 · 1 评论 -
栈应用:括号匹配问题
问题:假设一个算法表达式种包含圆括号、方括号、花括号三种类型的括号,编写一个函数,用来判断表达式种的括号是否正确配对。算法思想:在算术表达式中,右括号和左括号的匹配次序正好符合后到的括号要最先被匹配的“后进先出”堆栈操作特定,因此可借助栈来操作。遇到左括号就入栈,遇到右括号就看是否匹配,匹配的话出栈并且继续往后进行。括号匹配有以下四种情况1.左右括号匹配次序不正确2.右括号多于左括号3...原创 2019-08-02 11:52:59 · 1311 阅读 · 0 评论