码迷,mamicode.com
首页 > 其他好文 > 详细

5--链表输出

时间:2015-09-27 20:06:09      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:

/*
题目:
(1)首先写出单链表
(2)对链表进行方向输出

解题思路:
(a)使用stack,后进先出的策略。
(b)递归


*/

#include <stdio.h>
#include <stdlib.h>
#include <stack>
#include <iostream>
using namespace std;

typedef struct ListNode
{
    int m_nValue;
    struct ListNode *m_pNext;
} lNode;

void listAddNode(lNode *head)
{
    lNode *p = head, *p_Inter = NULL;

    if (!(p_Inter = ((lNode *)malloc(sizeof(lNode)))))
    {
        printf("the memery is don‘t create it\n");
        return;
    }
    p_Inter->m_pNext = NULL;

    int data;
    printf("请输入数字:\n");
    scanf_s("%d", &data);
    p_Inter->m_nValue = data;

    while (p->m_pNext != NULL)
    {
        p = p->m_pNext;
    }

    p->m_pNext = p_Inter;

}

lNode* createList(lNode *head)
{
    if (!(head = ((lNode *)malloc(sizeof(lNode)))))
    {
        printf("the memery is don‘t create it\n");
        return NULL;
    }
    head->m_pNext = NULL;
    int data;
    printf("请输入数字:\n");
    scanf_s("%d", &data);
    head->m_nValue = data;


    lNode *p = head, *p_Inter = NULL;
    char X_cin = Y;
    while (true)
    {
        printf("是否继续添加:N/n \n");
        cin >> X_cin;

        if (X_cin == y || X_cin == Y)
        {
            ;
        }
        else if (X_cin == N || X_cin == n)
        {
            return head;
        }
        else
        {
            ;
        }

        listAddNode(p);

    }

}

void showList(lNode *head)
{
    if (NULL == head)
    {
        cout << "list is empty \n" << endl;
        return;
    }

    lNode *p = head;

    while (p != NULL)
    {
        printf("%d\n", p->m_nValue);
        p = p->m_pNext;
    }

}

void reversePut(lNode *point)
{
    stack <int> stack_rev;
    
    lNode *p = point;

    while (p != NULL)
    {
        stack_rev.push(p->m_nValue);
        p = p->m_pNext;
    }
    while (!stack_rev.empty())
    {
        cout << stack_rev.top() << endl;
        stack_rev.pop();
    }
}



int main()
{
    lNode *head = NULL;

    head = createList(head);
    showList(head);
    reversePut(head);
    
    return 0;
}

 

5--链表输出

标签:

原文地址:http://www.cnblogs.com/hgonlywj/p/4842545.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!