栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

浅析C语言和Python(5)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

浅析C语言和Python(5)

引言:今天我们要开展的主题是:列表。这个名词对于有这两门语言基础的同学来说一定是不陌生的,尤记得当初初学的时候,在实验室做实验时,总能听见学长的嘴中总念叨着,链表,树,extend……之类的玄之又玄的东西。而这些就是我们现在要学到的:列表这个大类的知识和内容。今天就让我们在这两门语言中对这个有趣的概念,进行一个简单的比较和使用。

正文:

我们先来看C语言中这一类的知识,既然说到了C语言不得不提的就是另外一门课程:数据结构。这是一门非常深奥的学科,其中涵盖了很多关于思维和认知方面的知识,能够大幅度提升思维和反应能力。其中我认为的最有意思的一章当属于:线性结构;其中包含了:线性表;广义表;多重链表;堆栈和队列等关乎于列表的知识,而今天我我们选取出来要讲的就是当中的堆栈。

堆栈的部分详细操作大家可以关照附表和程序,如下:

类型名称堆栈(Stack)
数据对象集一个有0个或者多个元素的有穷线性表
操作集

对于一个具体长度为正整数的MaxSize的堆栈SStack,记堆栈中的任意元素XElementType,堆栈的基本操作主要于以下几种:

1、Stack CreatStack(int MaxSize) : 生成空堆栈,其最大长度为MaxSize

2、bool IsFull(Stack S) : 判断堆栈S是否已满。若S中元素个数等于MaxSize时返回true否则返回false

3、bool Push(Stack S,ElementType X): 将元素X压入堆栈。若堆栈已满,返回false,否则将元素X插入堆栈S顶处并返回true。

4、bool IsEmpty(Stack S):判断堆栈S是否为空,若是则返回true;否则返回false

5、ElementType Pop(Stack S):删除并返回栈顶元素。若堆栈为空,返回错误信息;否则将对栈顶元素从堆栈中删除并返回。

typedef int Position;
typedef stuct SNode * PtrToSNode;
struct SNode  {
    ElementType * Data;    //存储元素的数组
    Position Top;        //栈顶指针
    int MaxSize;        //堆栈的最大容量
    } ;

Stack CreatStack(int MaxSize)
{
    Stack S = (Stack)malloc(sizeof(struct SNode));
    S -> Data = (ElementType*)malloc(MaxSize*sizeof(ElementType));
    S -> Top = -1;
    S -> MaxSize = MaxSize;
    return S;
}

bool IsFull(Stack S)
{
    return(S -> Top == S -> MaxSize-1);
}

bool Push(Stack S, ElementType X)
{
    if(IsFull(s)) {
        printf("堆栈满");
        return false;
    }
    else {
            S -> Data[++(S -> Top)] = X;
            return true;
          }
}

bool IsEmpty(Stack S)
{
    return(S -> Top == -1)
}

    ElementType Pop(Stack S)
{
    if(IsEmpty(S)){
        printf("堆栈空");
       return ERROR; 
    }
    else
        return(S -> Data[(S -> Top)--]);
}

接下来我们要讲的是Python方面关于这个的知识和内容:

        Python中的列表,相当于C语言中的数组。而他们的相同点就在于:变量存储的是对象的地址。(一个对象包括:地址(id)类型(type)值(value)并且列表中都存储着多个对象的地址。

 Python中列表的特点有以下几点:

1、列表元素按照置入顺序有序排序
2、索引映射唯一一个数据
例子:print(lst[0])
3、列表中可以存储重复数据
4、任意数据类型混合存储
5、根据需要动态分配和回收内存

我们既然要了解列表那么就要知道列表的创建;列表元素的获取;列表的填充和对列表元素的判断

这里我们选取了列表的创建和列表元素的获取来进行进一步讲解,身下的我们会在下一章进行补充说明。

1、列表的创建:

#列表的创建方式:
'''列表的创建方式1:使用[]直接创'''
lst=['hellow','world',98]

'''创建方式2:使用内置函数list'''
lst=list(['hellow','world',98])

2、列表元素的获取:(即index函数的使用)

我们如果要获取列表中的单个元素,那就只有一种办法:使用索引进行查找。
【注:索引分为逆向索引(-N — -1)和正向索引(1 — N-1)。】

index:获取列表中指定的元素的索引(类似于书签)
1、如果查询的列表中含有N个相同的元素,则只会返回相同元素的第一个元素的索引
2、如果查询的元素在列表中不存在,则会返回ValueError
3、还可以在指定的start和stop中进行查找

#例子:
lst=['hello','world',98,'hello']
print(lst,index('hello'))
print(lst,index('hello',1,4))
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/913825.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号