Linux C學習第二十天

2021-09-02 23:41:09 字數 3665 閱讀 2281

棧和佇列:

棧:後進先出

新增元素:壓棧

刪除元素:出棧

棧的實現:

1.順序棧。

2.鏈式棧

棧最頂端的元素叫棧頂元素。

順序棧:

標頭檔案:

#ifndef _stack_h_

#define _stack_h_

#define size 10

typedef enum bool;

typedef int data;

typedef struct stack

stack;

// 初始化棧

void init(stack *s);

// 判斷空棧

bool empty(stack *s);

// 判斷滿棧

bool full(stack *s);

// 入棧

void push(stack *s, data data);

// 出棧

void pop(stack *s);

// 獲取棧頂元素

data gettop(stack *s);

功能函式:

#include "stack.h"

#include void init(stack *s)

bool empty(stack *s)

bool full(stack *s)

void push(stack *s, data data)

void pop(stack *s)

data gettop(stack *s)

主函式:

#include #include "stack.h"

int main()

while (!empty(&s))

printf ("棧結束\n");

return 0;

}

鏈式棧:

標頭檔案:

#ifndef _stack_h_

#define _stack_h_

#define size 10

typedef enum bool;

typedef int data;

typedef struct node

node;

typedef struct stack

stack;

// 初始化棧

void init(stack *s);

// 判斷空棧

bool empty(stack *s);

// 入棧

void push(stack *s, data data);

// 出棧

void pop(stack *s);

// 獲取棧頂元素

data gettop(stack *s);

#endif // _stack_h_

功能函式:

#include "stack.h"

#include void init(stack *s)

bool empty(stack *s)

void push(stack *s, data data)

void pop(stack *s)

data gettop(stack *s)

主函式:

#include #include "stack.h"

int main()

while (!empty(&s))

printf ("棧結束\n");

return 0;

}

佇列:先進先出

有隊頭和隊尾

順序佇列:

標頭檔案:

#ifndef _queue_h_

#define _queue_h_

#define size 20

typedef enum bool;

typedef int data;

typedef struct queue

queue;

// 初始化佇列

void init(queue *s);

// 判斷空佇列

bool empty(queue *s);

// 判斷滿佇列

bool full(queue *s);

// 入佇列

void push(queue *s, data data);

// 出佇列

void pop(queue *s);

// 獲取隊頭元素

data gettop(queue *s);

功能函式:

#include "queue.h"

#include void init(queue *q)

bool empty(queue *q)

bool full(queue *q)

void push(queue *q, data data)

void pop(queue *q)

data gettop(queue *q)

主函式:

#include #include "queue.h"

int main()

while (!empty(&q))

return 0;

}

鏈式佇列:

標頭檔案:

#ifndef _queue_h_

#define _queue_h_

#define size 10

typedef enum bool;

typedef int data;

typedef struct node

node;

typedef struct queue

queue;

// 初始化佇列

void init(queue *s);

// 判斷空佇列

bool empty(queue *s);

// 入佇列

void push(queue *s, data data);

// 出佇列

void pop(queue *s);

// 獲取隊頭元素

data gettop(queue *s);

#endif // _queue_h_

功能函式:

#include "queue.h"

#include void init(queue *q)

bool empty(queue *q)

void push(queue *q, data data)

else

}void pop(queue *q)

data gettop(queue *q)

主函式:

#include #include "queue.h"

int main()

while (!empty(&q))

return 0;

}

python學習第二十天

1.多繼承 繼承 x是一種y的時候.可以使用繼承關係.is a 乙個類同時繼承多個類 python,c 孫悟空是一種猴子,還是一種神仙 2.經典類的mro 通過數型結構的深度優先遍歷 一條道走到黑 從左往右 3.新式類的mro 重點,難點 c3演算法 先拆分再合併 第一項的頭和後面所有項的尾進行比較...

第二十天 繼承

繼承指的是新建類的方法 新建的類稱之為子類或者派生類 子類繼承的類叫做父類,也 稱之為基類或超類 子類可以繼承父類的屬性 特徵與技能 並且可以派生出自己的屬性 特徵與技能 繼承的目的是為了減少 冗餘 減少重複 抽象指的是抽取相似的部分,稱之為抽象.物件是特徵與技能的結合體.類是一系列物件相同的特徵與...

java web學習第二十天 jsp

乙個jsp頁面中可以有0到多次的指令 1.如果兩個屬性只寫了乙個,那麼另乙個值和他相同,都沒寫預設iso page 格式 page屬性 屬性值 pageencoding它指定當前jsp的編碼 contenttype 它表示新增乙個響應頭 import 導包,可以出現多次 errorpage 當前頁面...