- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构(三)课件
栈和队列;栈顶(top):允许插入和删除的一端;
top始终指向栈中最后一个元素所在的位置。
栈底(bottom):不允许插入和删除的一端。
思考 :对栈的操作一旦进行了这样的限制,
它和普通线性表会有怎样的区别?; a1;二.栈的存储结构
顺序栈、链栈;栈中的运算:1.设置空栈 ; 2. 插入一个新的栈顶元素 (入栈)
3. 删除栈顶元素(出栈); 4. 读取栈顶元素 。 ;· 入栈算法(假定栈为整型);出栈算法:
function pop(s,top)
integer pop,top,s(top)
if(top.eq.0)then
print*,’stack is empty!’
pop= -1
else
pop=s(top)
top=top-1
endif
end;读栈顶元素算法:
注意:此操作不改变栈顶的位置。
function readtop(s,top)
integer readtop,top,s(top)
if(top.eq.0)then
print*,’stack is empty!’
readtop= -1
else
readtop=s(top)
endif
end;an;思考:
为什么栈的链式存储中要将栈顶位置作为链表的头,而将栈底位置作为链表的尾?倒过来行不行?;进栈算法
;;;;;出栈算法
;p;p;;r;(1)设置一个空队列;
(2)插入一个新的队尾元素,称为入队;
(3)删除队头元素,称为出队;
(4)读取队头元素;;(1)顺序存储结构;(a)线性队列; 顺序存储队列的类型定义:;(b) 循环队列;循环队列的初始化(置空队)算法:
subroutine InitlQueue(sq)
parameter (MAXLEN=4)
结构体类型queuetype定义略
record/queuetype/ sq
sq.front=MAXLEN
sq.rear=MAXLEN
end;void InitQueue ( SeqQueue *Q )
{ //构造空队列
Q-data=(QueueData*) malloc
(MAXSIZE*sizeof(QueueData));
if(! Q-data) exit(OVERFLOW);
Q-rear = Q-front = 0;
return 1;
};循环队列的入队算法:
parameter(MAXLEN=4)
subroutine EnQueue(q, front,rear,x)
integer front,rear
datatype x,q(MAXLEN)
if(mod(rear,MAXLEN)+1.eq. front)
print*,’queue is full!’
else
rear=mod(rear,MAXLEN)+1
q(rear)=x
endif
end ;循环队列的入队算法:
subroutine EnQueue(sq, x)
parameter (MAXLEN=4)
结构体类型queuetype定义略
record/queuetype/ sq
datatype x
if(mod(sq.rear,MAXLEN)+1.eq. sq.front)
print*,’queue is full!’
else
sq.rear=mod(sq.rear,MAXLEN)+1
sq.q(sq.rear)=x
endif
end ;循环队列的入队算法:
int EnQueue ( SeqQueue *Q, QueueData x )
{
if ((rear%MAXSIZE)+1 == front)
{printf(“queue is full!); return(-1); }
else
{Q-rear=(Q-rear %MAXSIZE)+1 ;return 1;}
}
;循环队列的出队算法:
function delqueue(sq)
parameter (MAXLEN=4)
结构体类型queuetype定义略
record/queuetype/ sq
datatype delqueue 假设datatype在
文档评论(0)