zoukankan      html  css  js  c++  java
  • 数据结构学习(1)

    数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。

    1、线性结构

      a、连续存储 数组

         b、离散存储 链表

    常用的线性数据结构有栈、队列:

    栈的c语言描述:

    #include<stdio.h>
    #include<malloc.h>
    #define DataType int
    #define MAXSIZE 1024
    typedef struct
    {
    DataType data[MAXSIZE];
    int top;
    }SeqStack;
    SeqStack *Init_SeqStack()//栈初始化
    {
    SeqStack *s;
    s=(SeqStack *)malloc(sizeof(SeqStack));
    if(!s)
    {
    printf("空间不足
    ");
    return NULL;
    }
    else
    {
    s->top=-1;
    return s;
    }
    }
    int Empty_SeqStack(SeqStack *s)//判栈空
    {
    if(s->top==-1)
    return 1;
    else
    return 0;
    }
    int Push_SeqStack(SeqStack *s,DataType x)//入栈
    {
    if(s->top==MAXSIZE-1)
    return 0;//栈满不能入栈
    else
    {
    s->top++;
    s->data[s->top]=x;
    return 1;
    }
    }
    int Pop_SeqStack(SeqStack *s,DataType *x)//出栈
    {
    if(Empty_SeqStack(s))
    return 0;//栈空不能出栈
    else
    {
    *x=s->data[s->top];
    s->top--;
    return 1;
    }//栈顶元素存入*x,返回
    }
    DataType Top_SeqStack(SeqStack *s)//取栈顶元素
    {
    if(Empty_SeqStack(s))
    return 0;//栈空
    else
    return s->data[s->top];
    }
    int Print_SeqStack(SeqStack *s)
    {
    int i;
    printf("当前栈中的元素:
    ");
    for(i=s->top;i>=0;i--)
    printf("%3d",s->data[i]);
    printf("
    ");
    return 0;
    }
    int main()
    {
    SeqStack *L;
    int n,num,m;
    int i;
    L=Init_SeqStack();
    printf("初始化完成
    ");
    printf("栈空:%d
    ",Empty_SeqStack(L));
    printf("请输入入栈元素个数:
    ");
    scanf("%d",&n);
    printf("请输入要入栈的%d个元素:
    ",n);
    for(i=0;i<n;i++)
    {
    scanf("%d",&num);
    Push_SeqStack(L,num);
    }
    Print_SeqStack(L);
    printf("栈顶元素:%d
    ",Top_SeqStack(L));
    printf("请输入要出栈的元素个数(不能超过%d个):
    ",n);
    scanf("%d",&n);
    printf("依次出栈的%d个元素:
    ",n);
    for(i=0;i<n;i++)
    {
    Pop_SeqStack(L,&m);
    printf("%3d",m);
    }
    printf("
    ");
    Print_SeqStack(L);
    printf("栈顶元素:%d
    ",Top_SeqStack(L));
    return 0;
    }

    2、非线性结构   树、图:

  • 相关阅读:
    MkDocs: 构建你自己的知识库
    Vue入门
    Vue UI库
    【入门】PyTorch
    【转载】工业相机的原理与选型
    如果你是狮子,就得学会逼狼去吃草
    【转载】剖析Git的实现机制
    管理学-员工管理
    量化投资
    【汇总】图像格式
  • 原文地址:https://www.cnblogs.com/weilq/p/3435867.html
Copyright © 2011-2022 走看看