数据结构
数据结构从入门到弃坑
Mr Robots
从小白到放弃的菜鸡一枚
展开
-
链表总结-C
链表总结一、理论部分1.节点组成2.基本操作二、具体实现1.基本操作——插入A.尾插法B.头插法C.任意位置插入2.基本操作——删除一、理论部分1.节点组成数据域+指针域(下一个链表的地址)note:表头变量head存放链表首地址struct Node{ int data; //数据域可随意定义 struct Node* next; //指针域}2.基本操作a.插入:头插法,尾插法,任意位置插入b.删除c.遍历打印d.逆转链表(递归、迭代)二、具体实现1.基本操作——原创 2021-08-08 19:50:18 · 183 阅读 · 0 评论 -
排序
输入格式:输入第一行给出正整数N(N≤100000),随后一行给出N个(长整型范围内的)整数,其间以空格分隔。输出格式:在一行中输出从小到大排序后的结果,数字间以1个空格分隔,行末不得有多余空格。输入样例:114 981 10 -17 0 -20 29 50 8 43 -5输出样例:-20 -17 -5 0 4 8 10 29 43 50 981方法一 选择排序#include<stdio.h>void SampleSelectSort(int* a,int n){原创 2021-01-31 14:30:42 · 112 阅读 · 0 评论 -
根据后序和中序遍历输出先序遍历
本题要求根据给定的一棵二叉树的后序遍历和中序遍历结果,输出该树的先序遍历结果。输入格式:第一行给出正整数N(≤30),是树中结点的个数。随后两行,每行给出N个整数,分别对应后序遍历和中序遍历结果,数字间以空格分隔。题目保证输入正确对应一棵二叉树。输出格式:在一行中输出Preorder: 以及该树的先序遍历结果。数字间有1个空格,行末不得有多余空格。输入样例:72 3 1 5 7 6 41 2 3 4 5 6 71.建树-储存-先序访问#include<stdio.h>#in原创 2021-01-27 10:41:18 · 183 阅读 · 0 评论 -
双端队列
双端队列(deque,即double-ended queue的缩写)是一种具有队列和栈性质的数据结构,即可以(也只能)在线性表的两端进行插入和删除。若以顺序存储方式实现双端队列,请编写例程实现下列操作:Push(X,D):将元素X插入到双端队列D的头;Pop(D):删除双端队列D的头元素,并返回;Inject(X,D):将元素X插入到双端队列D的尾部;Eject(D):删除双端队列D的尾部元素,并返回。bool Push(ElementType X,Deque D){ if((D-&g原创 2021-01-17 11:21:42 · 115 阅读 · 0 评论 -
链表逆置三种方法总结(C)
1.通过建立一个新链表实现struct ListNode *reverse(struct ListNode *head){ struct ListNode *head1=NULL,*p=NULL; while(head) { p=(struct ListNode*)malloc(sizeof(struct ListNode));//申请内存 p->data=head->data; p->next=head1; //利用原创 2020-12-14 19:50:17 · 805 阅读 · 0 评论