Skip to content

周正奇的作业 #3

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 58 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
533f3b4
level0 全部提交,level1 写到 p04,目前个人存在问题:知识大范围遗忘,过去掌握不牢,数据结构不会。
PomegranateC Sep 18, 2023
3731603
补充提交,上一次遗漏
PomegranateC Sep 18, 2023
4ac25e9
level0 全部提交,level1 写到 p04,目前个人存在问题:知识大范围遗忘,过去掌握不牢,数据结构不会。
PomegranateC Sep 18, 2023
de8b290
level1提交直第五题,修改了前面部分代码,增加了详细注释
PomegranateC Sep 19, 2023
886ee7c
level1提交直第五题,修改了前面部分代码,增加了详细注释
PomegranateC Sep 19, 2023
d98b56a
修改了部分代码
PomegranateC Sep 19, 2023
8ba0217
汉诺塔递归搞明白了,刚学习会深度优先算法,后面再写
PomegranateC Sep 20, 2023
753c9fb
写了个深度优先的,暂时还没写注释
PomegranateC Sep 25, 2023
d0ef7f7
上个版本的地图输出有些问题,改了下
PomegranateC Sep 25, 2023
6351d86
上个版本的地图输出有些问题,改了下
PomegranateC Sep 25, 2023
9750369
新增加了地图的注释,我的哥德巴赫用的枚举,好像无法分文件
PomegranateC Sep 26, 2023
5f9142e
重新手写了迷宫代码,进行了一定优化和注释
PomegranateC Sep 28, 2023
adfd99a
测试节点更改能否push
PomegranateC Sep 28, 2023
9a2800b
测试-2-节点更改能否push
PomegranateC Sep 28, 2023
f263ddc
测试3-增加了messagebox,并被大佬帮忙解决了乱码问题
PomegranateC Sep 28, 2023
ac55b1f
测试4-切换节点push
PomegranateC Sep 28, 2023
e46fab0
测试4-切换节点push
PomegranateC Sep 28, 2023
665c479
将迷宫题全部函数分文件但是不清楚分这么细是否有问题,以及当出现某函数需要调用另外一个函数是否要将他们放一起
PomegranateC Oct 6, 2023
6f68e89
推箱子基本实现,但有部分设想功能未实现,比如展示最佳成绩,展示以往成绩,撤回操作等
PomegranateC Oct 8, 2023
e185a58
测试提交
PomegranateC Oct 8, 2023
d3a0274
增加了推箱子未曾实现的功能:1.记录当前步数
PomegranateC Oct 12, 2023
9491f2d
修改了清屏方法解决了cls严重的屏闪问题 现在是使用的Windows API虽然暂时不理解,但是可以用 运行效果很好
PomegranateC Oct 12, 2023
7158ad9
修改了清屏方法解决了cls严重的屏闪问题 现在是使用的Windows API虽然暂时不理解,但是可以用 运行效果很好
PomegranateC Oct 12, 2023
8d400e0
修复了数据存储出现错误的bug,原因:错误地重复读取了储存的文件导致修改过后的变量被原始值覆盖
PomegranateC Oct 15, 2023
3ef26d0
(修改节点第二次提交)修复了数据存储出现错误的bug,原因:错误地重复读取了储存的文件导致修改过后的变量被原始值覆盖
PomegranateC Oct 15, 2023
3380732
(修改节点第三次提交)修复了数据存储出现错误的bug,原因:错误地重复读取了储存的文件导致修改过后的变量被原始值覆盖
PomegranateC Oct 15, 2023
c6be015
(修改节点第三次提交)修复了数据存储出现错误的bug,原因:错误地重复读取了储存的文件导致修改过后的变量被原始值覆盖
PomegranateC Oct 15, 2023
28b746b
修改了头文件的引用,将库引用都放到了头文件里
PomegranateC Oct 21, 2023
534b6a5
课堂作业-3个选择排序
PomegranateC Oct 21, 2023
3acf00f
作业level-9提交
PomegranateC Oct 30, 2023
ad362a4
作业level-9提交,目前自学单链表暂时搞定,队列栈等待挖掘。
PomegranateC Oct 30, 2023
1b53f7d
完成 level1_p01
PomegranateC Oct 31, 2023
ddf181b
初步完成P10已实现基础功能,注释以及部分细节等待完善
PomegranateC Nov 14, 2023
1911dbe
修改节点后二次提交-初步完成P10已实现基础功能,注释以及部分细节等待完善
PomegranateC Nov 14, 2023
e76639e
修改节点后三次提交-初步完成P10已实现基础功能,注释以及部分细节等待完善
PomegranateC Nov 14, 2023
7d88a37
课堂内以及自学的部分题目的提交,课堂的栈部分还没有完善
PomegranateC Nov 14, 2023
db69b5d
修改节点第二次提交,课堂内以及自学的部分题目的提交,课堂的栈部分还没有完善
PomegranateC Nov 14, 2023
d75ccbb
同一节点第三次提交,课堂内以及自学的部分题目的提交,课堂的栈部分还没有完善
PomegranateC Nov 14, 2023
c3bc117
同一节点第四次提交,课堂内以及自学的部分题目的提交,课堂的栈部分还没有完善
PomegranateC Nov 14, 2023
700d410
level1_p02完成,优化了代码进行了备注
PomegranateC Nov 15, 2023
0bed454
level1_p03完成,优化了代码进行了备注
PomegranateC Nov 15, 2023
f8d1369
level1_p04完成,优化了代码进行了备注
PomegranateC Nov 15, 2023
6723896
level1_p05完成,优化了代码进行了备注
PomegranateC Nov 15, 2023
33b9780
level1_p05完成,优化了代码进行了备注(虽然基本没怎么变化)
PomegranateC Nov 15, 2023
a3bee57
level1_p06完成,优化了代码进行了备注(虽然基本没怎么变化)
PomegranateC Nov 15, 2023
a448a04
level1_p07初步完成,优化了代码进行了备注
PomegranateC Nov 15, 2023
1bc001f
level1_p07初步完成2:修改了一个结束判断函数的返回值为布尔型,增加TODO
PomegranateC Nov 16, 2023
63a8abc
level1_p07初步完成2:修改了一个结束判断函数的返回值为布尔型,增加TODO
PomegranateC Nov 16, 2023
d339130
level1_p08基本完成
PomegranateC Nov 16, 2023
94218d1
level1_p09 基本完成,函数太小就没有细分函数文件了
PomegranateC Nov 16, 2023
ce2603f
level1_p10 完成
PomegranateC Nov 17, 2023
6d5a65e
课程设计结束提交~完结撒花
PomegranateC Dec 25, 2023
4bb62ee
课程设计结束提交~完结撒花
PomegranateC Dec 25, 2023
228bf1a
课程设计结束提交~完结撒花
PomegranateC Dec 25, 2023
b921886
课程设计结束提交~完结撒花
PomegranateC Dec 25, 2023
eb32c97
课程设计结束提交~完结撒花
PomegranateC Dec 25, 2023
858a59b
Merge remote-tracking branch 'origin/main'
PomegranateC Dec 25, 2023
b1d5301
课程设计报告及PPT提交
PomegranateC Jan 4, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,8 @@ set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)

add_subdirectory(level1)
add_subdirectory(level0)
add_subdirectory(level2)
add_subdirectory(class)
add_subdirectory(my_study)
add_subdirectory(design)
23 changes: 23 additions & 0 deletions class/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
project(class)

add_executable(struct struct/main.c)

add_executable(pop pop/main.c)

add_executable(choose choose/main.c)

add_executable(insert insert/main.c)

add_executable(stack stack/main.c)

add_executable(others_1 others_1/main.c)

add_executable(reverse_bolan_SeqLink reverse_bolan_SeqLink/main.c
reverse_bolan_SeqLink/SeqList.c
reverse_bolan_SeqLink/SeqList.h)

add_executable(list list/main.c)

add_executable(queue queue/main.c
queue/Queue.c
queue/Queue.h)
33 changes: 33 additions & 0 deletions class/choose/main.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#include <stdio.h>
#include <windows.h>

void swap(int* a, int* b) {
int t = *a;
*a = *b;
*b = t;
}

void Choose(int a[], int n) {
for (int i = 0; i < n - 1; ++i) {
int k = i;
for (int j = i + 1; j < n; ++j) {
if (a[j] < a[k]) {
k = j;
}
}
swap(a + i, a + k);
}
}

int main()
{
int mas[] = {3,4,1,5,8,2,99,0},num = sizeof (mas)/ sizeof(mas[0]);
Choose(mas,num);
for(int i = 0;i < sizeof (mas) / sizeof(mas[0]);i ++)
{
printf("%d ",mas[i]);
}
system("pause");
printf("\n");
return 0;
}
49 changes: 49 additions & 0 deletions class/insert/main.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#include <stdio.h>
#include <windows.h>

void insert(int a[],int n,int m)
{
int temp = a[n];
for(int i = n - 1;i > m;i --)
{
a[i + 1] = a[i];
}
a[m + 1] = temp;
}

void Insert_sort(int a[], int n) {

for(int i = 1;i < n;++i)
{
int count = 0;
while(count < i){
if(a[i] < a[count]){
insert(a,i,count - 1);
break;
}
else if(a[i] >= a[count] && a[i] <= a[1 + count])
{
insert(a,i,count);
break;
}
else
{
count ++;
}
}

}
}

int main()
{
int mas[] = {4,3,1,8,5,99,17,20,2,7},num = sizeof (mas)/ sizeof(mas[0]);
Insert_sort(mas, num);
for(int i = 0;i < sizeof (mas) / sizeof(mas[0]);i ++)
{
printf("%d ",mas[i]);
}
system("pause");
printf("\n");
return 0;
}
15 changes: 15 additions & 0 deletions class/list/main.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#include <stdio.h>
#include <stdlib.h>
//使用链表指向 1【】 2【】 3【】
//1 h->x 2 h-> 1.x 3 p insert 4 delete h
typedef struct Node
{
int data;//定义数据域
struct Node *next;//定义后继指针域
}Node;

int main()
{
Node * h = (Node*) malloc(sizeof (Node *));

}
84 changes: 84 additions & 0 deletions class/others_1/main.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
#include <stdio.h>
#include <stdbool.h>
#include <malloc.h>
#include <string.h>

typedef struct ST
{
int sp;
int *a;
int size;
}stack;

stack* CreateStack(int size);
void push(stack *st,int v);
int pop(stack *st);
bool is_full(stack *st);
bool is_empty(stack *st);

int main() {
int res;
char c;
stack *st=CreateStack(100);
for(scanf("%c",&c);c!='\n';scanf("%c",&c))
{
if(c>='0'&&c<='9')
{
push(st,c-'0');
}
else
{
int a,b;
b=pop(st);
a=pop(st);
switch(c)
{
case'+':
push(st,a+b);
break;
case'-':
push(st,a-b);
break;
case'*':
push(st,a*b);
break;
case'/':
push(st,a/b);
break;
}
}
}
res=pop(st);
printf("Result:%d\n",res);
return 0;
}
stack *CreateStack(int size)
{
stack *ret=malloc(sizeof(stack));
memset(ret,0,sizeof(stack));
ret->a=malloc(sizeof(int)*(size+1));
memset(ret->a,0,sizeof(int)*(size+1));
ret->size=size;
return ret;
}
void push(stack *st,int v)
{
if(is_full(st)) return;
st->a[st->sp++]=v;
return;
}
int pop(stack *st)
{
int ret;
if(is_empty(st)) return 0;
ret=st->a[--(st->sp)];
return ret;
}
bool is_full(stack *st)
{
return st->sp==st->size;
}
bool is_empty(stack *st)
{
return st->sp==0;
}
45 changes: 45 additions & 0 deletions class/pop/main.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
#include <stdio.h>
#include <windows.h>
void Exchange(int *a,int *b);
void Pop(int a[],int num);

int main()
{
int mas[] = {3,4,1,5,8,2,99,0},num = sizeof (mas)/ sizeof(mas[0]);
Pop(mas,num);
for(int i = 0;i < sizeof (mas) / sizeof(mas[0]);i ++)
{
printf("%d ",mas[i]);
}
system("pause");
printf("\n");
return 0;
}

void Exchange(int *a,int *b)
{
int temp = *a;
*a = *b;
*b = temp;
}

void Pop(int a[],int num)
{
int flag = 0,count = 0;
while (flag < num - 1){
flag = 0;
for(int i = 0;i < num - 1 - flag;++i)
{
if(a[i] > a[i + 1])
{
Exchange(a + i,a + i + 1);
count = 0;
}
else
{
++count;
}
}
flag += count;
}
}
69 changes: 69 additions & 0 deletions class/queue/Queue.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
#include "Queue.h"

Queue * create_queue(int num){

//申请队列空间,即数组空间
SeqQueue queue = (Queue *) malloc(sizeof(Queue) * num);

//判断队列空间申请失败
if(!queue){
printf("malloc fail!");
return NULL;
}

//初始化队列容量
queue->capacity = num;

//初始化队列元素个数
queue->size = 0;

//初始化队列值为空
queue->data = (QueueDataType*)malloc(num * sizeof(QueueDataType));
if (!queue->data) {
printf("Memory allocation for data array failed.\n");
free(queue); // Clean up and free the queue struct
return NULL;
}
for (int i = 1; i < num; ++i) {
queue->data[i] = 0;
}

//返回队列指针
return queue;
}

int is_empty(Queue* queue)
{
if(0 == queue->size)
return 1;
else
return 0;
}

void append(Queue* queue, int x)
{
//判断队列不存在
if(!queue){
return;
}

//判断队列元素是否为满,拿队列当前的长度去跟数组的最大值作比较
if(queue->size == queue->capacity){
printf("队列元素已满!\n");
return;
}

//插入元素(进队)
queue->data[queue->size] = x;

//元素入队,队列长度增加
queue->size ++;
}

void print_queue(Queue* queue)
{
for (int i = 0; i < queue->size; ++i) {
printf("%d ",queue->data[i]);
}
printf("\n");
}
18 changes: 18 additions & 0 deletions class/queue/Queue.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

typedef int QueueDataType;

typedef struct Queue{

QueueDataType *data; //顺序存储 数组模拟的队列
int size; //队列的大小(队列中元素的个数)
int capacity;
}Queue,*SeqQueue;

Queue * create_queue(int num);
int is_empty(Queue* queue);
void append(Queue* queue, int x);
void print_queue(Queue* queue);
21 changes: 21 additions & 0 deletions class/queue/main.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#include "Queue.h"


int main() {
Queue* queue=create_queue(3);
assert(is_empty(queue));

append(queue,1);//queue->append(1);
append(queue,2);
append(queue,3);
print_queue(queue);
// assert(is_full(queue));
//
// int x=pop(queue);
// assert(x==1);
// assert(pop(queue)==2);//queue->pop()==2
// assert(pop(queue)==3);

// assert(is_empty(queue));
return 0;
}
Loading