关于C语言的问题,数据结构

[复制链接]
查看11 | 回复4 | 2007-10-28 11:16:25 | 显示全部楼层 |阅读模式
没什么问题,就是没有用use std,编译的时候,可能cin和cout无法识别对补充的回答没有错误啊,那个是说当你的代码没有修改而已。重编一下就可以了不用去管它
回复

使用道具 举报

千问 | 2007-10-28 11:16:25 | 显示全部楼层
你在使用c++,但是使用了非标准的C++头文件iostream.h你的代码在大部分老的C++编译器及其头文件下没问题。可能是使用VC++2005,这个版本没有iostream.h这个头文件,所以出错,你可以改成下面的样子#include using namespace std;编译通过
回复

使用道具 举报

千问 | 2007-10-28 11:16:25 | 显示全部楼层
不知到你所说的错是指什么,但是在VC 6.0 中运行正确,没有问题, 只是你定义的 int length 没派上用场.
回复

使用道具 举报

千问 | 2007-10-28 11:16:25 | 显示全部楼层
这个链栈程序,VC下没有问题,不知道LZ遇到了什么问题可以说一下~~~
回复

使用道具 举报

千问 | 2007-10-28 11:16:25 | 显示全部楼层
顺便给你修改了一下,你的方法不是很好~注意区分链栈和结点,发现在使用的时候出现问题,还有有个最明显的是空函数的判断有点问题吧以下仅供参考#include #include #include #define TRUE 1#define FALSE 0#define OK 1#define ERROR 0typedef struct student{int num;char name[10];}Student;typedef Student EType;typedef bool Status;typedef struct node{EType data;node *link;}Node;typedef struct snode{Node *bottom;Node *top;}Snode;Snode *CreatStack(Snode *S){//构造一个空栈S->top=(Node *)malloc(sizeof(Node));S->top->link=NULL;S->bottom=NULL;return S;}Status IsEmpty(Snode *S){//判断堆栈是否为空if(!(S->top)) return TRUE;else return FALSE;}EType GetTop(Snode *S,EType &x){//返回栈顶的元素if(!IsEmpty(S)) {Node *p=S->top;x=p->data;}return x;}void Push(Snode *S,EType &x){//x进S栈,返回进栈后的状态值Node *q=(Node *)malloc(sizeof(Node));q->data=x;q->link=S->top->link;S->top->link=q;}ETypePop(Snode *S,EType &x){//将S栈顶的元素取至x中,返回出栈后的状态值if(!IsEmpty(S)) {Node *p=S->top->link;x=p->data;S->top->link=p->link;delete p;return x;}}void main(){EType x[5];int i;Snode *S;for(i=0;i>x.num;cout>x.name;}S=CreatStack(S);for(i=0;i<5;i++)Push(S,x);for(i=0;i<5;i++){Pop(S,x);cout<<x.num<<x.name<<endl;}}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行