成都网站建设设计

将想法与焦点和您一起共享

顺序栈的逆置代码Java 编写算法实现顺序表的逆置

急!!!!借助栈将单链表逆置?会的好友请帮帮忙,先谢!

下面这个程序是通过栈对顺序表(数组)逆置,你只要把它改为链表的就行了。

成都创新互联成立于2013年,是专业互联网技术服务公司,拥有项目网站制作、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元沭阳做网站,已为上家服务,为沭阳各地企业和个人服务,联系电话:028-86922220

#includeiostream

#includestdlib.h

#includestring

#includemalloc.h

using namespace std;

#define MAXSIZE 100

typedef int ElemType;

typedef struct

{

ElemType elem[MAXSIZE];

int top;

}Stack;

int initStack(Stack **s)

{

(*s)-top=-1;

return 0;

}

int push(Stack **s,ElemType elem)

{

if((*s)-top==MAXSIZE-1) return -1;

else

{

(*s)-top=(*s)-top+1;

(*s)-elem[(*s)-top]=elem;

}

return 0;

}

int pop(Stack **s,ElemType e)

{

if((*s)-top==-1)

{

cout"达到下界"endl;

return -1;

}

e=(*s)-elem[(*s)-top];

coute" ";

(*s)-top=(*s)-top-2;

while((*s)-top!=-1)

{

e=(*s)-elem[(*s)-top];

coute" ";

(*s)-top=(*s)-top-1;

}

coutendl;

return 0;

}

int isEmpty(Stack *s)

{

if (s-top==-1)

return 1;

else

return 0;

}

int main(void)

{

ElemType elem,e;

Stack *s=(Stack *)malloc(sizeof(Stack));

initStack(s);

cout"请依次输入你要存放在栈中的数"endl;

cinelem;

while(1)

{

push(s,elem);

if (getchar()=='#')

break;

cinelem;

}

cout"栈中的元素为:"endl;

while(!isEmpty(s))

{

pop(s,e);

}

return 0;

}

利用一个顺序栈将单链表逆置是什么意思?不理解逆置跟顺序栈有什么关系

将链表逆置,例如

原链表:

1-2-3-4-5

逆置之后

5-4-3-2-1

使用栈,利用栈“后进先出”的特性。

当你把原链表按其 1 2 3 4 5的顺序入栈,再出栈时,顺序即为5 4 3 2 1

形成一个新的链表,达到逆置的目的。

已知Q是一个非空顺序队列,S是一个顺序栈栈,请用自然语言描述使Q中的所有元素逆置的算法思想

Q出队列一个元素,此元素再入栈S,

队列出空后,开始依次弹栈,这样原队列就逆置了

题目是:利用顺序栈将带头结点的链队列(a1,a2,…,an)逆置为(an,an-1,…,a1),但是在C语言下执行不对

你使用栈时SeqStack *S;没有指向任何存储单元。事实上,S=NULL(因为是全局变量,自动设为0),因此对其成员变量的引用(如S-base = (SElemType*) malloc (STACK_INIT_SIZE * sizeof(SElemType));)是错误的

即将

typedef struct {

SElemType *base;

SElemType *top;

int stacksize;

} SeqStack;

SeqStack *S;//本句改为 SeqStack *S=(SeqStack *S)malloc(sizeof(SeqStack));即可

或改为SeqStack Q,*S=Q;

或在int InitStack (SeqStack *S )中更改:更改为int InitStack (SeqStack *S ){S=(SeqStack *S)malloc(sizeof(SeqStack));

欢迎继续提问!

已知q是一个非空顺序队列,s是一个顺序栈,请设计一个算法,实现将队列q中所有元素逆置

将队列中的元素顺序压栈,由于队列先进先出,而栈是后进先出,先进栈的就在栈底,而后进的就在栈顶,然后等到队列所有元素进入栈中,即队列为空时,再将栈中的元素顺序弹入队列,这样原先队列中最后进入栈的就在栈顶,而弹出栈后,进入队列就在队列头部,就可以实现队列的元素逆置。


网页标题:顺序栈的逆置代码Java 编写算法实现顺序表的逆置
新闻来源:http://chengdu.cdxwcx.cn/article/hjecip.html