创建单链表并利用栈将其逆置...小白求大神帮改一下多谢。

问题描述

创建单链表并利用栈将其逆置...小白求大神帮改一下多谢。

建立单链表时输入链表数据(字符数据)以‘#’号结束。
#include
#include
#define M 20
typedef struct
{
char data[M];
int top;
}SeqStack;

typedef struct lnode
{
char data;
struct lnode*next;
}LNode,*LinkList;

SeqStack*Init_SeqStack()
{
SeqStack*s;
s=(SeqStack*)malloc(sizeof(SeqStack));
s->top=-1;
return s;
}

int Push_SeqStack(SeqStack*s,char x)
{
if(s->top==M-1)
return 0;
else
{
s->top++;
s->data[s->top]=x;
return 1;
}
}

int Empty_SeqStack(SeqStack*s)
{
if(s->top==-1)
return 1;
else return 0;
}

int Pop_SeqStack(SeqStack*s,char&x)
{
if(Empty_SeqStack(s))
return 0;
else{
x=s->data[s->top];
return 1;
}
}

LinkList Creat_LinkList()
{
LinkList L;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
return L;
}

int main()
{

char x;
LinkList L;
LNode*s,*r;
SeqStack*S;
S=Init_SeqStack();
L=Creat_LinkList();
r=L;

while(1)
{
s=(LinkList)malloc(sizeof(LNode));
scanf("%c",&(s->data));
if(s->data=='#')
{
  break;
}
r->next=s;
r=s;
}
r->next=NULL;

s=L;
while(s->next!=NULL)
{
  s=s->next;
  Push_SeqStack(S,s->data);
}

s=L;

while(!Empty_SeqStack(S))
{ s=s->next;
  Pop_SeqStack(S,s->data);

}

s=L;
while(s->next!=NULL)
{
 s=s->next;
 printf("%c ",s->data);

}

}

解决方案

http://blog.sina.com.cn/s/blog_4ad9dfe60100xy9c.html

解决方案二:

http://zhidao.baidu.com/link?url=HrjuqKWePmt122qaM678rozMrnINMuh7rZdjAkyXeOtMFm4zfEFzeFe8VPMS1SMcu2ANON51CQkhT1oXcTstca
http://blog.sina.com.cn/s/blog_4ad9dfe60100xy9c.html

时间: 2024-07-28 19:53:52

创建单链表并利用栈将其逆置...小白求大神帮改一下多谢。的相关文章

单链表-请教C编程题,本人初学者,求大神解答,万分感谢

问题描述 请教C编程题,本人初学者,求大神解答,万分感谢 求大侠帮忙:C语言程序设计---编程题说明:以下所有题目程序应是非递归的) 编写一个函数,输出整数m的全部素数因子.例如,m=120时,素数因子为:2,2,2,3,5 请编写程序判断一个字符串是否是回文.若是回文,函数返回值为1,否则返回值为0.(回文是顺读和倒读都一样的字符串).要求: 1) 编写sub()判断一字符串是否为回文 2) 在主函数中完成数据的输入与结果的输出 3.起泡排序是把大的元素向下移,也可以将小的元素向上移,请给出下

单链表的顺序-c++正序与逆序创建单链表有什么区别

问题描述 c++正序与逆序创建单链表有什么区别 c++正序与逆序创建单链表有什么本质的区别,逆序比顺序的优点体现在哪? 解决方案 逆序没什么特别的好处,给你学编程的时候练练手玩的,在实际的项目中会用到标准库,那是双向链表,没有逆序创建一说. 要说逆序的好处:当要加入新的数据时,不需要遍历链表,可以直接在头结点之后插入即可,减少时间复杂度 解决方案二: 没有太大价值吧......不过双向的链表应用很广泛 解决方案三: 逆序创建单链表

指针-c++中创建单链表的问题。

问题描述 c++中创建单链表的问题. 最后一句p=q.书上写的是将p指针后移,指向后继结点q. 怎么是指针呢?难道不是直接q把覆盖了吗? 解决方案 p和q都是指针变量,赋值只是指针之间的赋值,和指针指向的内容没有关系.

递归算法-用栈存储指向一个二叉树结点的指针,中序遍历时,进行调试时总卡在GetTop()函数,请大神帮我看看

问题描述 用栈存储指向一个二叉树结点的指针,中序遍历时,进行调试时总卡在GetTop()函数,请大神帮我看看 利用栈存储指向一个二叉树结点的指针,可不知为什么,在进行中序遍历时,进行调试时总卡在GetTop()函数这里,请大神帮我看看 #include "stdio.h" #include "malloc.h" #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASIBLE

c语言-来个大神帮忙看下这个链表倒置哪里有问题啊 真的看傻了

问题描述 来个大神帮忙看下这个链表倒置哪里有问题啊 真的看傻了 void bear_reverse(node * front) { node *p, *c, *n; p = NULL; c = front; n = c->next; while (n != NULL) { p = c; c = n; n = c->next; if (p != NULL) { p->next = c; } } c->next = p; front = c; } 解决方案 node * reverse

请教各位大神帮写一个ASP申请表单

问题描述 请教各位大神帮写一个ASP申请表单 <div style="margin-left:auto; margin-right:auto;margin-top:0px; width:950px; "> <div id="div0" runat="server" style="line-height:20px;"> <ul> <li style="text-align:ce

javaweb-通过request获取表单数据,但封装不到对象中,求大神解答!

问题描述 通过request获取表单数据,但封装不到对象中,求大神解答! # User类有username和password两个属性,封装的时候只能封装进去password,输出map的值的时候,里面是有的-- 以下是封装语句: User form = CommonUtils.toBean(request.getParameterMap(),User.class); 以下是CommonUtils类的toBean()方法:(不允许使用尖括号,泛型就用圆括号代替了-) public static (

char-二叉树的创建和遍历,编译成功了不知道在运行窗口输入什么。大神帮我看看

问题描述 二叉树的创建和遍历,编译成功了不知道在运行窗口输入什么.大神帮我看看 //***********先序建立二叉树中的节点 ****************** void CreatBiTree(BiTree *T) { char ch; fflush(stdin); if((ch = getchar()) == 'n') *T = NULL; else { (*T)=(BiTNode *)malloc(sizeof(BiTNode)); if(!(*T)) exit(1); (*T)->

表单-求大神帮我看看web中的这个问题

问题描述 求大神帮我看看web中的这个问题 在表单提交了,就会弹出这样一些东西,说是空指针异常,但具体是哪里我并不知道,烦请大神们帮我看看. HTTP Status 500 - java.lang.NullPointerException type Exception report message java.lang.NullPointerException description The server encountered an internal error that prevented i