学习数据结构day6

双端队列
只允许从两端插入、两端删除的线性表
队列的变种
输入受限的双端队列:只允许从一端插入、两端删除的线性表
输出受限的双端队列:只允许从两端插入、一端删除的线性表
考点:判断输出序列合法性

栈的应用–括号匹配
最后出现的左括号最先被匹配(LIFO):可用“栈”实现该特性
每出现一个右括号,就“消耗”一个左括号
遇到左括号就入栈

算法实现

bool bracketCheck(char str[],int length){
	sqstack S;
	initsrack(S);
	for(int i=0;i<length;i++){
		if(str[i]=='('||str[i]=='['||str[i]=='{'){
		Push(S,str[i]);
	}else{
		if(stackempty(S))
			return false;
		char topelem;
		pop(S,topelem);
		if(str[i]==')'&&topelem!='(')
			return false;
		if(str[i]=='}'&&topelem!='{')
			return false;
		if(str[i]==']'&&topelem!='[')
			return false;
		}
	}
	return stackempty(S);
}
上一篇:Normalizing Flows (NF) - 流模型 - 研究方向


下一篇:为何代码没错,却出不来结果,你可能...