linux */10 * * * *,Linux学习之路(10)

顺序栈:

main.c

#include #include "Stack.h"

int main()

{

stack s;

Data i;

Init(&s);

for (i = 0; i < SIZE; i++)

{

Push(&s, i);

}

while(!Empty(&s))

{

printf("%d\n",GetTop(&s));

Pop(&s);

}

printf("栈结束\n");

return 0;

}

stack.c:

#include "Stack.h"

#include

void Init(stack *s)

{

if(NULL == s)

return;

s->top = -1;

}

BOOL Full(stack *s)

{

if(NULL == s)

return FALSE;

if (SIZE - 1 == s->top)

return TRUE;

return FALSE;

}

BOOL Empty(stack *s)

{

if(NULL == s)

return FALSE;

if(-1 == s->top)

return TRUE;

return FALSE;

}

void Push(stack *s, Data data)

{

if(NULL == s)

return;

if(Full(s) == TRUE)

return;

s->data[++s->top] = data;

}

void Pop(stack *s)

{

if(NULL == s)

return;

if(Empty(s) == TRUE)

return;

--s->top;

}

Data GetTop(stack *s)

{

if(NULL == s)

return;

if(Empty(s) == TRUE)

return;

return s->data[s->top];

}

stack.h:

#ifndef _STACK_H

#define _STACK_H

#define SIZE 10

typedef enum{FALSE,TRUE} BOOL;

typedef int Data;

typedef struct Stack

{

int top;

Data data[SIZE];

} stack;

//初始化栈

void Init(stack *s);

//进栈(压栈)

void Push(stack *s, Data data);

//出栈

void Pop(stack *s);

//判断栈满

BOOL Full(stack *s);

//判断栈空

BOOL Empty(stack *s);

//获取栈顶元素

Data GetTop(stack *s);

#endif

结果:

ab6355c2e260ee037d37f5966fbb43d5.png

链式栈:

main.c:

#include #include "stack.h"

int main()

{

Stack s;

Init(&s);

int i;

for(i = 0 ; i < SIZE; i++)

{

Push(&s, i);

}

while(!Empty(&s))

{

printf("%d\n", Gettop(&s));

Pop(&s);

}

printf("栈结束\n");

return 0 ;

}

stack.c:

#include #include #include "stack.h"

// 初始化栈

void Init(Stack* s)

{

if (s == NULL)

return;

s->head.next = NULL;

}

// 判断空栈

BOOL Empty(Stack* s)

{

if (s == NULL)

return FALSE;

if(s->head.next == NULL)

return TRUE;

return FALSE;

}

// 入栈

void Push(Stack* s, Data data)

{

if (s == NULL)

return;

Node* node = (Node*)malloc(sizeof(Node)/sizeof(char));

if (node == NULL)

return;

node->data = data;

node->next = s->head.next;

s->head.next = node;

}

// 出栈

void Pop(Stack* s)

{

if (s == NULL)

return;

if(Empty(s) == TRUE)

return;

Node* p = s->head.next;

s->head.next = p->next;

free(p);

}

// 获取栈顶元素

Data Gettop(Stack* s)

{

if (s == NULL)

return;

if(Empty(s) == TRUE)

exit(-1);

return s->head.next->data;

}

Stack.h:

#ifndef _STACK_H_

#define _STACK_H_

#define SIZE 10

typedef enum{FALSE, TRUE}BOOL;

typedef int Data;

typedef struct _node

{

Data data;

struct _node* next;

}Node;

typedef struct stack

{

Node head;

}Stack;

// 初始化栈

void Init(Stack* s);

// 入栈

void Push(Stack* s, Data data);

// 出栈

void Pop(Stack* s);

// 判断空栈

BOOL Empty(Stack* s);

// 获取栈顶元素

Data Gettop(Stack* s);

#endif // _STACK_H_

结果:

4f717e7e2489c29d4a3f8a42d2531c68.png

链式队列:

main.c:

#include #include "Queue.h"

int main()

{

Queue q;

Init(&q);

int i;

for(i = 0 ; i < SIZE; i++)

{

Push(&q, i);

}

while(!Empty(&q))

{

Data data = GetTop(&q);

printf("%d\n", data);

Pop(&q);

}

printf("队列结束\n");

return 0 ;

}

Queue.c

#include #include #include "Queue.h"

// 初始化队列

void Init(Queue* q)

{

if (q == NULL)

return;

q->front = NULL;

q->rear = NULL;

}

// 判断空队列

BOOL Empty(Queue* q)

{

if (q == NULL)

return FALSE;

if(q->front == NULL)

return TRUE;

return FALSE;

}

// 入队列(尾插)

void Push(Queue* q, Data data)

{

if (q == NULL)

return;

Node* node = (Node*)malloc(sizeof(Node)/sizeof(char));

if (node == NULL)

return;

node->data = data;

node->next = NULL;

if(q->rear != NULL)

{

q->rear->next = node;

q->rear = node;

}

else

{

q->rear = node;

q->front = node;

}

}

// 出队列

void Pop(Queue* q)

{

if (q == NULL)

return;

if(Empty(q) == TRUE)

return;

Node* tmp = q->front;

q->front = tmp->next;

free(tmp);

if(q->front == NULL)

q->rear = NULL;

}

// 获取队头元素

Data GetTop(Queue* q)

{

if (q == NULL)

return;

if(Empty(q) == TRUE)

exit(-1);

return q->front->data;

}

Queue.h:

#ifndef _QUEUE_H_

#define _QUEUE_H_

#define SIZE 10

typedef enum{FALSE, TRUE}BOOL;

typedef int Data;

typedef struct _node

{

Data data;

struct _node* next;

}Node;

typedef struct queue

{

Node *front;         //队头指针

Node *rear;          //队尾指针

}Queue;

// 初始化队列

void Init(Queue* s);

// 输入队列

void Push(Queue* s, Data data);

// 输出队列

void Pop(Queue* s);

// 判断空队列

BOOL Empty(Queue* s);

// 获取队头元素

Data Gettop(Queue* s);

#endif // _STACK_H_

结果:

7ab29eb6645ca727904f973f6f5ed9f4.png

顺序队列:

main.c:

#include #include "Queue.h"

int main()

{

Queue q;

Init(&q);

int i;

for(i = 0 ; i < SIZE; i++)

{

Push(&q, i);

}

while(!Empty(&q))

{

Data data = GetTop(&q);

printf("%d\n", data);

Pop(&q);

}

printf("队列结束\n");

return 0 ;

}

queue.c:

#include #include #include "Queue.h"

// 初始化队列

void Init(Queue* q)

{

if (q == NULL)

return;

q->front = 0;

q->rear = 0;

}

// 判断空队列

BOOL Empty(Queue* q)

{

if (q == NULL)

return FALSE;

if(q->front == q->rear)

return TRUE;

return FALSE;

}

//判断满队列

BOOL Full(Queue* q)

{

if (q == NULL)

return FALSE;

if((q->rear+1)%SIZE == q->front)

return TRUE;

return FALSE;

}

// 入队列(尾插)

void Push(Queue* q, Data data)

{

if (q == NULL)

return;

if (Full(q) == TRUE)

return;

q->rear = (q->rear+1)%SIZE;

q->data[q->rear] = data;

}

// 出队列

void Pop(Queue* q)

{

if (q == NULL)

return;

if(Empty(q) == TRUE)

return;

q->front = (q->front+1)%SIZE;

}

// 获取队头元素

Data GetTop(Queue* q)

{

if (q == NULL)

return;

if(Empty(q) == TRUE)

exit(-1);

return q->data[(q->front+1)%SIZE];

}

queue.h:

#ifndef _QUEUE_H_

#define _QUEUE_H_

#define SIZE 10

typedef enum{FALSE, TRUE}BOOL;

typedef int Data;

typedef struct _node

{

Data data;

struct _node* next;

}Node;

typedef struct queue

{

Data data[SIZE];

int front;         //队头指针

int rear;          //队尾指针

}Queue;

// 初始化队列

void Init(Queue* s);

// 输入队列

void Push(Queue* s, Data data);

// 输出队列

void Pop(Queue* s);

// 判断空队列

BOOL Empty(Queue* s);

// 获取队头元素

Data Gettop(Queue* s);

#endif // _STACK_H_

结果:

1452d46362a4fc0c65875637fcd35099.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用信息,scheduled.time.test1 = 0/10 * * * * * 是一个 cron表达式,它代表每隔10秒执行一次。具体解释如下: - 第一位(秒):0/10表示从第0秒开始,每隔10秒触发一次。 - 第二位(分):*表示每分钟都触发。 - 第三位(小时):*表示每小时都触发。 - 第四位(日期):*表示每天都触发。 - 第五位(月份):*表示每月都触发。 - 第六位(星期):*表示每周都触发。 综上所述,scheduled.time.test1 = 0/10 * * * * * 表示每隔10秒执行一次。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Spring 的 Scheduled 注解 cron表达式遇见的坑](https://blog.csdn.net/weixin_44493844/article/details/115617599)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Linux学习笔记精华总结(选自鸟哥的Linux私房菜)](https://blog.csdn.net/Until_U/article/details/105294807)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值