- 博客(19)
- 收藏
- 关注
原创 2-2 学生成绩链表处理 (20分)
本题要求实现两个函数,一个将输入的学生成绩组织成单向链表;另一个将成绩低于某分数线的学生结点从链表中删除。函数接口定义:struct stud_node *createlist(); struct stud_node *deletelist( struct stud_node *head, int min_score );函数createlist利用scanf从输入中获取学生的信息,将其组织成单向链表,并返回链表头指针。链表节点结构定义如下:struct stud_node {int num; /
2020-11-01 10:23:07
190
1
原创 2-1 2比1 Add Two Polynomials
2-1 2比1 Add Two Polynomials (20分)Write a function to add two polynomials. Do not destroy the input. Use a linked list implementation with a dummy head node. Note: The zero polynomial is represented by an empty list with only the dummy head node.Format of
2020-10-30 13:53:37
208
1
原创 1-8 数组循环左移
最开始直接用的数组移动后来发现直接用链表存储先断开前面需要放到后面的链,将后部分第一个设为头结点,然后遍历链表将前面断开的链接到后面去,然后最后一个指向NULL
2020-10-29 20:29:35
316
原创 1-6 求链式线性表的倒数第K项
标题1-6 求链式线性表的倒数第K项 (20分)给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字。输入格式:输入首先给出一个正整数K,随后是若干非负整数,最后以一个负整数表示结尾(该负数不算在序列内,不要处理)。输出格式:输出倒数第K个位置上的数据。如果这个位置不存在,输出错误信息NULL。输入样例:4 1 2 3 4 5 6 7 8 9 0 -1输出样例:7思路:队列实现创建一个大小为k的队列当存满之后存一个弹出一个只到最后全部push完成此时再弹出即为倒数第
2020-10-29 20:13:11
309
原创 1-3 递增的整数序列链表的插入
思路:创建插入元素的结点然后选择合适位置插入注意题目要求带有头结点List Insert( List L, ElementType X ){ List p,q; q=L; p=(List)malloc(sizeof(struct Node)); p->Data=X; p->Next=NULL; while(L->Next&&L->Next->Data<X) { L=L->N
2020-10-29 19:36:09
144
原创 1-2 链表逆置
本题要求实现一个函数,将给定单向链表逆置,即表头置为表尾,表尾置为表头。链表结点定义如下:struct ListNode {int data;struct ListNode *next;};函数接口定义:struct ListNode *reverse( struct ListNode *head );其中head是用户传入的链表的头指针;函数reverse将链表head逆置,并返回结果链表的头指针。裁判测试程序样例:#include <stdio.h>#include &l
2020-10-29 19:21:40
272
原创 1-1 顺序表操作集
本题要求实现顺序表的操作集。函数接口定义:List MakeEmpty(); Position Find( List L, ElementType X );bool Insert( List L, ElementType X, Position P );bool Delete( List L, Position P );其中List结构定义如下:typedef int Position;typedef struct LNode *List;struct LNode { Eleme
2020-10-29 19:11:34
244
原创 PTA 单链表分段逆转(函数题)
给定一个带头结点的单链表和一个整数K,要求你将链表中的每K个结点做一次逆转。例如给定单链表 1→2→3→4→5→6 和 K=3,你需要将链表改造成 3→2→1→6→5→4;如果 K=4,则应该得到4→3→2→1→5→6。L是**给定的带头结点**的单链表,K是每段的长度。函数K_Reverse应将L中的结点按要求分段逆转。思路:首先遍历链表确定需要分段逆转几次(n/k)建立两个指针数组存储链表结点地址第一个大小为K用于逆转链表第二个大小为n/k用于存储每一小段的头结点,注意最后一段如果不需要逆转
2020-10-20 17:15:29
2579
3
原创 PTA 双端队列 数据结构
双端队列(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 );El
2020-10-19 23:50:18
1921
原创 前、中、后缀表达式问题
前缀表达式:波兰逻辑学家J.Lukasiewicz于1929年提出的另一种表示表达式的方法。运算符位于操作数之前,不怎么常用。。。前缀表达式求值:从右至左扫描,遇到表达式---->压入堆栈、遇到操作符---->弹出栈顶的两个元素,用这个操作符进行运算并将运算结果入栈。重复以上操作将整个表达式扫描完毕,最后栈中的元素就是结果。中缀转换成前缀:定义两个栈s1为为运算符栈,s2为结果栈从右边开始遍历中缀表达式遇到操作数则将其压入s2遇到运算符号则比较其与s1栈顶符号的运算优先级.
2020-10-18 11:44:28
226
原创 PTA 堆栈模拟队列
设已知有两个堆栈S1和S2,请用这两个堆栈模拟出一个队列Q。所谓用堆栈模拟队列,实际上就是通过调用堆栈的下列操作函数:int IsFull(Stack S):判断堆栈S是否已满,返回1或0;int IsEmpty (Stack S ):判断堆栈S是否为空,返回1或0;void Push(Stack S, ElementType item ):将元素item压入堆栈S;ElementType Pop(Stack S ):删除并返回S的栈顶元素。实现队列的操作,即入队void AddQ(Eleme
2020-10-15 17:21:11
838
原创 3-2 数组元素的区间删除
直接用另一个数组存储删除后的元素然后赋值回去int Delete( int A[], int L, int minA, int maxA ){ int b[MAXN]; int i,j=0; for(i=0;i<L;i++) { if(A[i]<=minA||A[i]>=maxA) { b[j++]=A[i]; } } for(i=0;i<j;i++)
2020-10-14 23:33:21
566
原创 C++ STL queue
队列定义queue<类型> name注意push和pop操作位置empty 空时返回1非空为0front和back只是返回元素值不对队列产生任何影响.
2020-10-14 23:18:26
142
原创 3-1 Deque
A “deque” is a data structure consisting of a list of items, on which the following operations are possible:Push(X,D): Insert item X on the front end of deque D.Pop(D): Remove the front item from deque D and return it.Inject(X,D): Insert item X on the
2020-10-14 23:04:43
294
原创 02-线性结构3 Reversing Linked List
Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elements on L. For example, given L being 1→2→3→4→5→6, if K=3, then you must output 3→2→1→6→5→4; if K=4, you must output 4→3→2→1→5→6.Input Specification:Each
2020-10-11 21:35:37
165
原创 基本认识
1. HTML、 CSS、 JavaScript三者的关系网页主要由三部分组成: 结构( Structure) 、 表现( Presentation) 和行为( Behavior) HTML —— 结构, 决定网页的结构和内容( “是什么”) CSS —— 表现( 样式) , 设定网页的表现样式( “什么样子”) JavaScript( JS) —— 行为, 控制网页的行为( “做什么”)2. 网页渲染过程浏览器渲染的过程主要包括以下五步:1浏览器将获取的HTML文档解析成DOM树。2处理CSS标
2020-10-11 00:16:20
198
原创 51智能避障蓝牙小车
51智能避障+蓝牙小车清单:51最小系统板HC-SR04超声测距模块SG90舵机(注意180°和360°区别)车壳,车轮电机*418650电池(3.7V)*3L298N电机驱动HC-08 主从一体蓝牙模块其他零件#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intuint time,count;int S;sbit k1=P
2020-10-11 00:06:02
2451
1
原创 C++ STL stack
Stacktop()返回栈顶元素push(x)将x压入栈顶pop()弹出栈顶元素size()返回栈中元素个数empty()判断栈是否为空其他的后续再补充。
2020-10-10 23:55:18
811
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人