一、上午
1.记百词斩四级词汇100个,并抄了一遍。(3h)
一、下午
1.看数据结构(1h)
栈和队列
一、栈是限定仅在表尾进行插入和删除操作的线性表。
1.栈的顺序存储结构
栈的结构定义:
#include<bits/stdc++.h>
#define MAXSIZE 100
using namespace std;
typedef struct{
int data[MAXSIZE];//栈的大小
int top;//用于栈顶指针
};
进栈push操作:
//插入元素x为新的栈顶元素
int Push(Sqstack *s,int x)
{
if(s->top==MAXSIZE-1) //栈满
return 0;
s->top++;//栈顶指针加1
s->data[s->top]=x;//放入栈顶
return 1;
}
出栈pop操作:
//默认栈不为空,删除栈顶元素
int Pop(Sqstack *s,int x)
{
if(s->top==-1) //栈为空
return 0;
x=s->data[s->top];//取出栈顶元素
s->top--;//栈顶指针减1
return x;
}
2.栈的链式存储结构
栈的链式结构:
typedef struct Stacknode
{
int data;
struct Stacknode *next;
}P;
typedef struct
{
P* top;
int count;
}Linkstack;
进栈push操作:
//插入元素x为栈顶元素
int push(Linkstack *q,int x)
{
P *s=(P *)malloc(sizeof(P));
s->data=x;
s->next=q->top;//把当前栈顶元素赋值给新结点的直接后继
q->top=s;//把新的结点赋值给栈顶指针
q->count++;
return 1;
}
出栈pop操作:
//若栈不为空删除栈顶元素,并返回栈顶元素
int pop(Linkstack *q)
{
P* t;int x;
if(stackempty(*q)) return 0;
x=q->top->data;
t=q->top;//将栈顶结点赋值给t
q->top=q->top->next;//栈顶指针下移一位,指向后一结点
free(t);//释放栈顶结点
q->count--;//结点数减1
return x;//返回栈顶元素
}
栈的应用-------递归(每个递归定义必须至少有一个条件,满足时递归不再进行)。
2.刷了四个vj上的题,2个没过,2个过了,那两个没过的我觉得没什么问题,运行都是对的一直找不出bug,现在还没过,过了的2个里这是其中一个的题。(2h)
AC代码:
#include<stdio.h>
int main()
{
int n,i,j,m,flag;
while(scanf("%d",&n)!=EOF)
{
int mystack[110];
int instack[110];
int top=0,j=0,x=0;
for(i=0;i<n;i++)
scanf("%d",&mystack[i]);//输入一个序列
for(i=1;i<=n;i++)
{
instack[++top]=i;//自然数1~n入栈
if(top>x)
x=top;
while(top>0&&instack[top]==mystack[j])
{
top--;//把正确入栈的元素按顺序出栈
j++;
}
}
if(top==0)//所有元素能正常入栈出栈
printf("%d\n",x);
else
printf("%d\n",-1);
}
}
三、晚上
我想写洛谷上的题(搜索),结果一看一个都不会,没学只知道有bds和dfs,但不知道是什么,然后我就盯着啊哈算法看了很久,看的时候好像都懂了,而且这两个算法区别不是很大,主要我在递归这地方转的比较慢,还不太会,所以一个题也没刷,oh no !我试着敲了一个全排列的代码,剩下的还在学(2h)。
#include<stdio.h>
int a[10],book[10],n;
void dfs(int step)
{
int i;
if(step==n+1)
{
for(i=1;i<=n;i++)
printf("%d",a[i]);
printf("\n");
return ;
}
for(i=1;i<=n;i++)
{
if(book[i]==0)
{
a[step]=i;
book[i]=1;
dfs(step+1);//递归调用(难理解)
book[i]=0;
}
}
return ;
}
int main()
{
scanf("%d",&n);
dfs(1);//从第一个数开始
getchar();getchar();
return 0;
}
总计:8h
明日计划:
学习100个单词,刷一套四级试卷。
学习搜索知识。
刷洛谷和vj