c c 資料結構 棧和佇列

2021-07-13 08:55:39 字數 2468 閱讀 3394

棧的特性就是先進後出只能在一端操作,好多應用場合 比如瀏覽器的後退呀、敲**時編輯器ctrl+z 返回上一步呀 等等 ,佇列的話是先進先出 兩邊操作,首先c我們用陣列來實現乙個棧和佇列 然後c++在用鍊錶實現棧和佇列

定義一些巨集變數 以便修改方便

#define  elemtype int //棧元素這裡使用int型別

#define max_size 10 //初始化棧的大小

#define add_size 10// 增量大小

定義乙個棧的屬性 包含乙個陣列和棧當前的長度

typedef struct _nodearraylist;

建立乙個棧

//初始化乙個棧或者乙個佇列

arraylist* init()

入棧或者入佇列的方法

//入棧 入佇列

int push(arraylist* list,elemtype data)

list->array[list->len]=data;

list->len++;

return 0;

}

出棧方法

//彈棧

elemtype pop(arraylist* list)

出佇列方法

//出佇列

elemtype queuepop(arraylist* list)

銷毀乙個棧

//銷毀棧

int destory(arraylist* list)

return 0;

}

下面是完整**:

#include #include#define  elemtype int //棧元素這裡使用int型別

#define max_size 10 //初始化棧的大小

#define add_size 10// 增量大小

typedef struct _nodearraylist;

//初始化乙個棧或者佇列

arraylist* init()

//入棧或者入佇列

int push(arraylist* list,elemtype data)

list->array[list->len]=data;

list->len++;

return 0;

}//彈棧

elemtype pop(arraylist* list)

int getlen(arraylist* list)

elemtype getnoded(arraylist* list,int index)

//銷毀棧

int destory(arraylist* list)

return 0;

}int cleal(arraylist* list)

int main();

template class stack;

#endif /* defined(_______stack2__) */

#include "stack2.h"

template stack::stack()

template stack::~stack()

//鍊錶---在指定位置新增元素

template bool stack::add(t t,int index)else

node->next= p->next;

p->next=node;

}len++;

return true;

}//鍊錶--刪除指定位置的元素

template t stack::remove(int index)else

tmp=p->next;

p->next= tmp->next;

}len--;

return tmp->data;

}//佇列---出佇列

template t stack::quepop()

len--;

return p->data;

}//棧---出棧

template t stack::pop()

//棧----進棧 或者 佇列--進佇列

template bool stack::push(t t)

//鍊錶---獲取指定位置的元素

template t stack::get(int index)

return p->data;

}

資料結構 棧和佇列

棧 基礎 知識棧 練習題 佇列 基礎知識 棧示意圖 後進先出 順序棧結構定義 define maxsize 1024 struct stack 操作函式 push 入棧 pop 出棧 struct lstack 鏈棧示意圖 操作函式 push 入棧 pop 出棧 注意 也可以直接呼叫系統已經寫好的庫...

資料結構 棧和佇列

本章的基本內容是 兩種特殊的線性表 棧和佇列 從資料結構角度看,棧和佇列是操作受限的線性表,他們的邏輯結構相同。從抽象資料型別角度看,棧和佇列是兩種重要的抽象資料型別。p棧 限定僅在表的一端進行插入和刪除操作的線性表。p允許插入和刪除的一端稱為棧頂,另一端稱為棧底。p空棧 不含任何資料元素的棧。a ...

資料結構 棧和佇列

用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。class solution int pop node stack2.top stack2.pop return node private stack stack1 stack stack2 大家都知道斐波那契數列,現...