| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 654 人关注过本帖
标题:急,菜鸟求教。在线等解。感激。
取消只看楼主 加入收藏
wjjjsy
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-4-21
收藏
 问题点数:0 回复次数:3 
急,菜鸟求教。在线等解。感激。
小弟现在正在做c语言的数据结构的考试题目。
搞不明白。
题目是下面这样的。
有没有人可以帮助我一下。
感谢感谢。

1.stack 求初始化函数  void initStack(STACK *stack)。这个函数每个变值stack型的结构体只有数据值,没有返还值。每个stack的成员,stackSize,bottom,top各各初识化为0和NULL.
2.stack 求列出  void printStack(STACK *stack)。每个变值输出STACK的结构体只有数据值,没有返还值。每个变值stack的bottom 从NODE开始 所有
NODE data输出。
3.求查询 bool isEmpty(STACK *stack)和bool isFull(STACK *stack)的stack 形态函数。这两个函数各个是否在满的情况下和空的情况下的值BOOL的真假。
4...说不清楚..
5...也说不清楚...
本题目,是韩国人出的.
我韩国语能力有限.是在翻译不出来.



#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

#define MAX 10

struct StackNode {
    char *title;
    char *singer;
    struct StackNode *next;
};
typedef struct StackNode STACKNODE;

struct Stack {
    int stackSize;
    STACKNODE *top;
    STACKNODE *bottom;
};
typedef struct Stack STACK;

void initStack(STACK *stack);
void printStack(STACK *stack);
bool isEmpty(STACK *stack);
bool isFull(STACK *stack);
void insertCD(STACK *stack);
void push(STACK *Sstack, STACKNODE *node);
void removeCD(STACK *stack);
void pop(STACK *stack, STACKNODE *removedNode);

void main()
{
    STACK *stack
    char cmd;
    
    printf("******************* Choose Command!! *******************\n");
    printf("+: push, -: pop, F: full check, E: empty check \n");
    printf("Q: Quit\n");
    printf("*********************************************************\n");

    stack = (STACK *)malloc(sizeof(STACK));

    initStack(stack);

    do {
        printf("Command:");
        cmd - getch();
        putch(cmd);
        cmd = toupper(cmd);

        switch (cmd)
        {
        case '+':
                insertCD(stack);
                break;
        case '-':
                removeCD(stack)
                break;
        case 'E':
                if (isEmpty(stack)) printf ("Stack is empty!\n");
                else printf ("Stack isn't full!\n");
                break;
        case 'F':
                if (isFull(stack)) printf ("Stack is full!\n");
                else printf ("Stack isn't full!\n");
                break;
        case 'Q':
                break;
        default :
                printf ("\nWrong command! Retry!\n");
        }
        printStack(stack);
    } while (cmd !='Q' );
}

void printStack(STACK *stack)
{
    int nSerial=1;
    STACKNODE *tempCursor, *cursor;
    tempCursor = stack->bottom;
    cursor = stack->top;

    if (isEmpty(stack))
    {
        printf("Stack is empty!\n");
    }
    else
    {
        printf("CD list\n");
        printf ("=============================================\n");

        while(tempCursor != NULL)
        {
            printf("%d : %s (%s)\n",nSerial, tempCursor->title,tempCursor->singer);
            tempCursor = tempCursor->next;
            nSerial++;
        }

        printf("n");
    }
}

void initStack(STACK *stack)
{
    //要写的地方1
}

bool isEmpty(STACK *stack)
{
    //要写的地方2
}
bool isFull(STACK *stack)
{
    //要写的地方3
}

void inserCD(STACK *stack)
{
    STACKNODE *tempNode;
    tempNode = (STACKNODE *)malloc(sizeof(STACKNODE));
    tempNode->next = NULL;
    tempNode->title = (char *)malloc(sizeof(CHAR)*20);
    tempNode->singer = (char *)malloc(sizeof(char)*20);

    printf ("=========================================================\n");
    printf ("CD Title : ");
    gets(tempNode->title);
    printf ("Singer : ");
    gets(tempNode->singer);
    printf ("\n");
    printf ("=========================================================\n");

    push(stack,tempNode);
}

void push(STACK *stack, STACKNODE *node)
{
    //要写的地方4
}

void removeCD(STACK *stack)
{
    STACKNODE *deletedNode;
    deletedNode = (STACKNODE *)malloc(sizeof(STACKNODE));
    deletedNode->next = NULL;
    deletedNode->title = NULL;
    deletedNode->singer = NULL;

    pop(stack, deletedNode);

    printf("\nRempved CD : %s (%s)\n",deletedNode->title,deletedNode->singer);
}

void pop(STACK *stack, STACKNODE *removedNode)
{
    //要写的地方5
}


感谢帮助者。感谢爱莫能助者。

[[it] 本帖最后由 wjjjsy 于 2008-4-21 15:38 编辑 [/it]]

42120712353.zip (1.37 KB)
搜索更多相关主题的帖子: 感激 在线 
2008-04-21 15:00
wjjjsy
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-4-21
收藏
得分:0 
感谢帮助者,感谢爱莫能助者。
2008-04-21 15:01
wjjjsy
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-4-21
收藏
得分:0 
我也很晕。。。没有头绪,不知道怎么做。。
2008-04-21 15:11
wjjjsy
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-4-21
收藏
得分:0 
没有人可以帮助到我么?
2008-04-21 15:15
快速回复:急,菜鸟求教。在线等解。感激。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017878 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved