• 大小: 56.37 KB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-08-11
  • 语言: 其他
  • 标签:

资源简介

做好的数据结构实验-魔王语言-源码加实验报告

资源截图

代码片段和文件信息

#include 
//#include 
#include 
#include 
#include 
#include


typedef char T;
/*
 ************** Stack **********
 */
typedef struct  _StackNode{
    T                   data;
    struct  _StackNode  *next;
    struct  _StackNode  *pri;
}*StackNode;

typedef struct  _Stack{
    int         size;
    StackNode   bottom;
    StackNode   top;
}*Stack;

/*
 *
 */
/*
分配栈结点并赋值data
*/
inline StackNode
stacknodemalloc( T data )
{
    StackNode p = (StackNode)malloc(sizeof(struct _StackNode));
    assert(p);
    p->data = data;
    return p;
}

/*
栈空吗?
*/
inline bool
stackempty( Stack stack )
{
    return (stack->size)?false:true;
}

/*
建一个栈并初始化
*/
Stack
stackcreat(void)
{
    Stack   p = (Stack)malloc(sizeof(struct _Stack));
    assert(p);
    p->size=0;
    p->bottom=p->top=NULL;
    return p;
}

/*
压栈
*/
bool
stackpush( Stack stackT data )
{
    StackNode node = stacknodemalloc( data );
    if( stackempty(stack) ){
        stack->bottom=stack->top=node;
        node->pri=NULL;
    }else{
        node->pri=stack->top;
        stack->top->next=node;
        stack->top=node;
    }
    ++stack->size;
    return true;
}

/*
出栈并返回data
*/
T
stackpop( Stack stack )
{
    StackNode p=stack->top->pri;
    T t = stack->top->data;

    assert( ! stackempty(stack) );

    free( stack->top );
    if( --stack->size == 0 ){
        stack->bottom=stack->top = NULL;
    }else{
        stack->top = p;
    }
    return t;
}

/*
销毁栈
*/
void
stackdestory( Stack stack )
{
    while( !stackempty( stack ) ){
        stackpop( stack );
    }
    free( stack );
}

/*
 * ********************************************
 */
char *map[]={“天 ““地 ““上 ““一只 ““鹅 ““追 ““赶““下 ““蛋““恨 “
};

char *
charmap(char c)
{
    char *p;
    switch(c){
        case ‘t‘:
            p=map[0];
            break;
        case ‘d‘:
            p=map[1];
            break;
        case ‘s‘:
            p=map[2];
            break;
        case ‘a‘:
            p=map[3];
            break;
        case ‘e‘:
            p=map[4];
            break;
        case ‘z‘:
            p=map[5];
            break;
        case ‘g‘:
            p=map[6];
            break;
        case ‘x‘:
            p=map[7];
            break;
        case ‘n‘:
            p=map[8];
            break;
        case ‘h‘:
            p=map[9];
            break;
        default:
            p=NULL;
            break;
    };
    return p;
}

int
main()
{
    char input[256]*i_iter=input;
    char output[256]*o_iter=output*p=o_iter;

    scanf(“%s“input);

    while(*i_iter){
        if(*i_iter == ‘B‘){
            strcpy(o_iter“tsaedsae“);
            o_iter=&p[strlen(p)];
            ++i_iter;
        }else{
            if(*i_iter>=‘a‘&&*i_iter<=‘z‘){
                char h=*i_iter++;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     196666  2007-07-03 23:19  实验1\hh.exe

     文件       3641  2007-07-03 23:19  实验1\h.cpp

     文件     102400  2008-12-14 12:47  实验1\05级_数据结构_实验1.doc

     目录          0  2007-07-03 23:49  实验1

----------- ---------  ---------- -----  ----

               302707                    4


评论

共有 条评论