数据结构实验二 栈、队列

该实验涉及数据结构中的栈和队列操作,包括链式和顺序存储方式的初始化、入栈、出栈和入队、出队。同时,使用栈实现了数制转换功能,通过设计菜单进行交互式测试。实验内容涵盖了链式栈、顺序栈、链式队列以及循环队列的应用。
摘要由CSDN通过智能技术生成

实验内容:

1.采用链式存储实现栈的初始化、入栈、出栈操作。

2.采用顺序存储实现栈的初始化、入栈、出栈操作。

3.采用链式存储实现队列的初始化、入队、出队操作。

4.采用顺序存储实现循环队列的初始化、入队、出队操作。

5.在主函数中设计一个简单的菜单,分别测试上述算法。

6.   利用栈实现数制转换(将一个十进制数转换成d进制数)。


1.链式栈(相当于一个先入后出 的单链表)

#include <stdio.h>
#include <stdlib.h> ///链式栈

typedef struct node
{
    int data;
    struct node *next;
}Node,*Linklist;

Linklist Createlist()
{
    Linklist p;
    Linklist h;
    int data1;
    scanf("%d",&data1);
    if(data1 != 0)
    {
        h = (Node *)malloc(sizeof(Node));
        h->data = data1;
        h->next = NULL;
    }
    else if(data1 == 0)
    return NULL;
    scanf("%d",&data1);
    while(data1 != 0)
    {
        p = (Node *)malloc(sizeof(Node));
        p -> data = data1;
        p -> next = h;
        h = p;
        scanf("%d",&data1);
    }
    return h;
}

void Outputlist(Node *head)
{
    Linklist p;
    p = head;
    while(p != NULL )
    {
        printf("%d ",p->data);
        p = p->next;
    }
    printf("\n");
}

void Freelist(Node *head)
{
    Node *p;
    Node *q = NULL;
    p = head;
    while(p != NULL)
    {
        q = p;
        p = p->next;
        free(q);
    }
}

int main()
{
    Node *head;
    head = Createlist();

    Outputlist(head);

    Freelist(head);

    return 0;
}



2.顺序栈


                
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值