佇列的連續與鏈式實現

2021-07-05 12:29:08 字數 1755 閱讀 5097

stl中已經有和了,寫在這裡是幫助理解這兩種資料結構。

佇列:只能在表的前端進行刪除(pop)操作,而在表的後端進行插入(push)操作,就像人們排隊一樣。

連續佇列

(陣列):

#include using namespace std;

const int queuesize = 10000;

template class queue;

template queue:: queue()

template void queue:: pop()

/*else underflow*/

return;

}template queue_entry queue:: front() const

/* return underflow */

}template queue_entry queue:: back() const

/* return underflow */

}template bool queue:: push(const queue_entry& newentry)

return false/*overflow*/;

}template bool queue:: empty() const

template int queue:: size() const

int main()

while(!s.empty())

return 0;

}

鏈式佇列

(鍊錶):

#include using namespace std;

template struct node

node(const node_entry& newentry, node* add_on = null)

};template class queue;

template queue:: queue()

template queue:: queue(const queue& original) }}

template queue:: ~queue()

}template void queue:: pop()

/*else underflow*/

return;

}template queue_entry queue:: front() const

/* return underflow */

}template queue_entry queue:: back() const

/* return underflow */

}template void queue:: push(const queue_entry& newentry)

tail->next = new_tail;

tail = new_tail;

return;

}template bool queue:: empty() const

template int queue:: size() const

template queue& queue:: operator=(const queue& original)

} return *this;

}int main()

} queues;

for(int i = 0; i < 10; i++)

while(!s.empty())

return 0;

}

棧的連續與鏈式實現

stl中已經有和了,寫在這裡是幫助理解這兩種資料結構。棧 只能在表的一段插入 push 或者刪除 pop 且滿足先進先出的順序。很形象的稱之為 棧 連續棧 陣列實現 include using namespace std const int stacksize 10000 template clas...

迴圈順序佇列與鏈式佇列實現

佇列是一種先進先出的資料結構,分順序儲存結構和鏈式儲存結構兩種。順序儲存結構中廣泛使用的是迴圈佇列,也是佇列使用中最多的一種。下面將分別實現這兩種佇列的基本操作。includeusing namespace std const int maxsize 100 class queue int isem...

鏈式佇列的實現

typedef struct nodelinklist typedef structlinkqueue void setnull linkqueue p set a empty queue,front and rear pointer both point to a head node void q...