C 模擬實現迴圈順序佇列

2021-08-28 03:24:38 字數 1520 閱讀 1928

c++中也會經常用的線性表鍊錶,對比各自特點,

線性表更適合完成棧的操作,因為線性表實際是陣列完成的,資料依次挨著排放,不需要前插把資料依次後移。

而鍊錶更適合佇列的操作,而鍊錶為了方便資料的尾插,頭刪,推出了帶頭節點的迴圈佇列。一下就是實現**:

//帶頭的迴圈順序佇列

#include

using namespace std;

typedef int datatype;

struct listnode

};class mylist

~mylist()

delete _head;

_head =

null;

//清理釋放還是要乙個節點乙個節點的delete釋放的。

}mylist(const mylist & ls)

:_head(new node(0))

dst->_next = _head;

//所以頭節點是沒有經行值拷貝的

}mylist& operator=(const mylist &ls)

return

*this;

}node*find(const datatype &x)

if (_head->_data == x)

return _head;

return

null;

//遍歷查詢節點並返回該位址

}void insert(node*pos, const datatype &x)

void erase(node* pos)

void pushback(const datatype& x)

//cur->_next = new node(x);

//cur->_next->_next = _head;

//cur->_next->_prev = cur;

//如果迴圈鍊錶的尾插還有遍歷,,,那迴圈還有啥用

node *cur = _head->_prev;

cur->_next =

new node(x);

node *newnode = cur->_next;

newnode->_next = _head;

newnode->_prev = cur;

_head->_prev = newnode;

}void pushfront(const datatype &x)

void popback()

void popfront()

size_t size()

return count;

}bool empty()

// void print()

//

// cout << cur->_data;

// cout << endl;

// }

//print自己寫完測試用的哦

private:

node *_head;

};

佇列的模擬實現 c語言

test.c define crt secure no warnings 1 include queues.h intmain queues.c include queues.h include include include include include typedef struct mycir...

C 實現迴圈順序佇列(佇列)

佇列同棧相對,前者為先進先出 first in first in 順序隊裡中,使用陣列儲存資料,基本原理同順序線性表和順序棧。由於使用陣列,所以必須事先定義陣列的最大容量maxsize,使用front表示隊頭位置 最先入元素 使用rear表示隊尾元素 最後入元素 這樣每進入乙個元素,rear要自加一...

迴圈佇列 順序佇列(C )

佇列 queue 是一種限定訪問位置的線性變。他允許在表的一端插入,在另一端刪除。這個和計算機排程策略中的先來先服務fcfs first come first served 是一樣的。佇列中可以插入的一端為隊尾 rear 允許刪除的一端稱為隊頭 front 佇列也分為兩種,一種是用陣列的儲存表示,一...