栈,vector容器,堆,链表,队列的基本操作方法(c,c++)

数据结构精要
本文深入讲解了stack、vector、heap、链表和队列的基本操作,涵盖了入栈、出栈、访问栈顶、判断栈空、构造函数、增加和删除函数、遍历和判断函数、大小函数等关键知识点。

stack的基本操作有:

1.入栈:如s.push(x);

2.出栈:如 s.pop().注意:出栈操作只是删除栈顶的元素,并不返回该元素。

3.访问栈顶:如s.top();

4.判断栈空:如s.empty().当栈空时返回true。

5.访问栈中的元素个数,如s.size();

---------------------------------------------------------------------------------------------------------------------

vector的基本操作有:

1.构造函数
vector():创建一个空vector
vector(int nSize): 创建一个vector, 元素个数为nSize
vector(int nSize, const t& t): 创建一个vector,元素个数为nSize, 且值均为 t
vector(const vector&): 复制构造函数
vector(begin, end): 复制 [begin, end) 区间内另一个数组的元素到vector中

2.增加函数
void push_back(const T& x): 向量尾部增加一个元素X
iterator insert(iterator it, const T& x): 向量中迭代器指向元素前增加一个元素x
iterator insert(iterator it, int n, const T& x): 向量中迭代器指向元素前增加n个相同的元素x
iterator insert(iterator it, const_iterator first, const_iterator last): 向量中迭代器指向元素前插入另一个相同类型向量的[first, last)间的数据

3.删除函数
iterator erase(iterator it): 删除向量中迭代器指向元素
iterator erase(iterator first, iterator last): 删除向量中[first, last)中元素
void pop_back(): 删除向量中最后一个元素
void clear(): 清空向量中所有元素

4.遍历函数
reference at(int pos): 返回pos位置元素的引用
reference front(): 返回首元素的引用
reference back(): 返回尾元素的引用
iterator begin(): 返回向量头指针,指向第一个元素
iterator end(): 返回向量尾指针,指向向量最后一个元素的下一个位置
reverse_iterator rbegin(): 反向迭代器,指向最后一个元素
reverse_iterator rend(): 反向迭代器,指向第一个元素之前的位置

5.判断函数
bool empty() const: 判断向量是否为空,若为空,则向量中无元素

6.大小函数
int size() const: 返回向量中元素的个数
int capacity() const: 返回当前向量张红所能容纳的最大元素值
int max_size() const: 返回最大可允许的vector元素数量值

7.其他函数
void swap(vector&): 交换两个同类型向量的数据
void assign(int n, const T& x): 设置向量中第n个元素的值为x
void assign(const_iterator first, const_iterator last): 向量中[first, last)中元素设置成当前向量元素

-------------------------------------------------------------------------------------------------------------------------------

堆的基本操作有:

  • build:建立一个空堆;

  • insert:向堆中插入一个新元素;

  • update:将新元素提升使其符合堆的性质;

  • get:获取当前堆顶元素的值;

  • delete:删除堆顶元素;

  • heapify:使删除堆顶元素的堆再次成为堆。

------------------------------------------------------------------------------------------------------------------

链表的基本操作有:

ListNode* Buy_node(Datatype x); //创建一个节点
void PrintList(ListNode* pHead);//打印链表
void PushBack(ListNode** ppHead, Datatype x);//尾插
void PopBack(ListNode** ppHead);//头插
void PopBack(ListNode** ppHead);//尾删
void PushFront(ListNode** ppNode, Datatype x);//头删
ListNode* Find(ListNode* pHead, Datatype x);//查找一个数据x
//在pos前面插入一个数据
void Insert(ListNode** ppHead, ListNode* pos, Datatype x);
void Erase(ListNode** ppHead, ListNode* pos);//删除pos位置的数据
----------------------------------------------------------------------------------------------------------------------------

队列的基本操作有:

add        增加一个元索                     如果队列已满,则抛出一个IIIegaISlabEepeplian异常
remove   移除并返回队列头部的元素    如果队列为空,则抛出一个NoSuchElementException异常
element  返回队列头部的元素             如果队列为空,则抛出一个NoSuchElementException异常
offer       添加一个元素并返回true       如果队列已满,则返回false
poll         移除并返问队列头部的元素    如果队列为空,则返回null
peek       返回队列头部的元素             如果队列为空,则返回null
put         添加一个元素                      如果队列满,则阻塞
take        移除并返回队列头部的元素     如果队列为空,则阻塞

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值