STL deque 양단 대기열 해결'자형 인쇄 트리
deque와 vector 유사
기본 초기화는 소개하지 않고 블로그를 참고할 수 있다https://www.cnblogs.com/linuxAndMcu/p/10260124.html
용기 최대 용량 deq.max_size();
요소 추가:
deq.push_front(const T& x);
deq.push_back(const T& x);
deq.insert(iterator it, const T& x);//
deq.insert(iterator it, int n, const T& x);
deq.insert(iterator it, iterator first, iterator last);
int nums[]={1,2,3,4,5};
deque<int>deq(nums,nums+5);//
deq.push_front(6);//6,1,2,3,4,5
deque<int>::iterator iter = deq.begin();
deq.insert(iter,7);//7,6,1,2,3,4,5 7
iter = deq.begin();// , insert ,
deq.insert(iter,2,6);//iter 6 6,6,7,6,1,...
deque<int>deq2(2,9);// deque 9
iter = deq.begin();
deq.insert(iter,deq2.begin(),deq2.end());//deq2 deq 9,9,6,6,7...
for(deque<int>::iterator iter= deq.begin();iter!=deq.end();iter++)
{
cout<" ";
}
위의 문장에서 교체기가 효력을 상실합니다. insert와erase에서 조작하면 삭제점과 삽입점 이후의 요소가 위치를 옮기기 때문에 삽입점과 삭제된 교체기는 모두 효력을 상실합니다.
요소 삭제 및 삽입과 유사
deq.pop_front();
deq.pop_back();
deq.erase(iterator it);
deq.erase(iterator first, iterator last);
deq.clear();
요소 액세스
deq[5] 아래 첨자 접근
at 메서드 액세스:
deq.at(1);
//이상의 두 가지 차이는at가 경계를 넘었는지 검사하는 것이고, out of range 이상을 던지는 것이다.deq.front();첫 번째 액세스
deq.back();마지막 액세스
기타
deq.assign(3,1)//초기화 3개 1
deq.swap(deq2)/deq와 deq2의 값을 교환합니다
교체기
deq.rbegin ()//마지막 원소를 가리키는 교체기
deq.rend()//시작을 가리키는 교체기 반환
deq.cbegin ()//상량 교체기, 이 값을 변경할 수 없습니다, deq.cend() 동리
leetcode 문제로 돌아가는 지그재그 프린트 트리
class Solution {
public:
vectorint >> levelOrder(TreeNode* root) {
vectorint>> res;
if (root==NULL)
return res;
bool flag = true; // true, false
deque q;
q.push_back(root);
while (!q.empty())
{
int n = q.size();
vector<int> out;
TreeNode* node;
while (n>0)
{
if (flag) // : , ,
{
node = q.front();
q.pop_front();
if (node->left)
q.push_back(node->left); //
if (node->right)
q.push_back(node->right);
}
else // : , ,
{
node = q.back();
q.pop_back();
if (node->right)
q.push_front(node->right); //
if (node->left)
q.push_front(node->left);
}
out.push_back(node->val);
n--;
}
flag = !flag;
res.push_back(out);
}
return res;
}
};
bfs+양단 대기열 해결
flag 변수를 설정하고 그 값을 통해 정방향 또는 역방향 값을 판단합니다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.