C语言实现顺序表代码

文件SeqList.cpp

 #pragma warning(disable: 4715)

 #include"SeqList.h"
void ShowSeqList(SeqList *pSeq)
{
assert(pSeq);
printf("size = %d \n",pSeq->size);
for(size_t i = ; i < pSeq->size;i++)
{
printf("%d ", pSeq->array[i]);
}
printf("\n");
} void InitSeqList(SeqList *pSeq)
{
assert(pSeq);
memset(pSeq->array,,sizeof(ElemType)*MAX_SIZE);
pSeq->size = ;
} void PushBack(SeqList *pSeq,const ElemType &x)
{
assert(pSeq);
if(pSeq->size >= MAX_SIZE)
{
printf("SeqList is Full\n");
return;
}
pSeq->array[pSeq->size++] = x;
} void PopBack(SeqList *pSeq)
{
assert(pSeq);
if(pSeq->size <= )
{
printf("SeqList is Empty\n");
return;
}
pSeq->array[--pSeq->size] = ;
} void PushFront(SeqList *pSeq,const ElemType &x)
{
size_t begin = pSeq->size;
assert(pSeq);
if(pSeq->size >=MAX_SIZE)
{
printf("SeqList is Full\n");
return;
}
for(;begin > ; --begin)
{
pSeq->array[begin] = pSeq->array[begin-];
}
pSeq->array[] = x;
pSeq->size++;
}
void PopFront(SeqList *pSeq)
{
size_t begin = ;
assert(pSeq);
if(pSeq->size <= )
{
printf("SeqList is Empty\n");
return;
}
for(;begin < pSeq->size-; ++begin)
{
pSeq->array[begin] = pSeq->array[begin+];
}
pSeq->array[--pSeq->size] = ;
} void Erase(SeqList *pSeq, size_t pos)
{
assert(pSeq);
if(pos > pSeq->size)
{
printf("Position Error\n");
return;
}
size_t begin = pos;
for(; begin < pSeq->size -;++ begin)
{
pSeq->array[begin] = pSeq->array[begin+];
}
pSeq->array[--pSeq->size] = ;
} void Remove(SeqList *pSeq, const ElemType &x)
{
size_t begin = ;
assert(pSeq);
for(; begin < pSeq->size; ++begin)
{
if(x == pSeq->array[begin])
{
Erase(pSeq,begin);
return;
}
}
printf("No this elemData\n");
} void RemoveAll(SeqList *pSeq, const ElemType &x)
{ size_t begin = ;
assert(pSeq);
for(; begin < pSeq->size; ++begin)
{
if(x == pSeq->array[begin])
{
Erase(pSeq,begin);
}
}
} //////////冒泡排序
void BubbSort(SeqList *s)
{
for(size_t i = ; i < s->size-;++i)
{
for(size_t j = ; j < s->size--i; ++j)
{
if(s->array[j] > s->array[j+])
{
ElemType tmp = s->array[j];
s->array[j] = s->array[j+];
s->array[j+] = tmp;
}
}
}
}

文件SeqList.h

 //顺序表简单实现

 #ifndef _SEQLIST_H
#define _SEQLIST_H #include<stdio.h>
#include<string.h> //for memcpy
#include<assert.h> //for assert
#include<malloc.h> //for malloc #define MAX_SIZE 100 typedef int ElemType;
typedef struct SeqList
{
ElemType array[MAX_SIZE];
size_t size;
}SeqList; void ShowSeqList(SeqList *pSeq);
void InitSeqList(SeqList *pSeq);
void PushBack(SeqList *pSeq,const ElemType &x);
void PopBack(SeqList *pSeq);
void PushFront(SeqList *pSeq,const ElemType &x);
void PopFront(SeqList *pSeq);
void Erase(SeqList *pSeq, size_t pos);
void Remove(SeqList *pSeq, const ElemType &x);
void RemoveAll(SeqList *pSeq, const ElemType &x);

测试文件Main.cpp

 #pragma once
#include<stdio.h>
#include "SeqList.h"
//顺序表示例
void TestForSeqList()
{
SeqList Seq;
InitSeqList(&Seq);
PushBack(&Seq,);
PopBack(&Seq);
PushBack(&Seq,);
PushFront(&Seq,);
PushFront(&Seq,);
PushBack(&Seq,); Erase(&Seq,);
Remove(&Seq,); ShowSeqList(&Seq);
PushBack(&Seq,);
PushBack(&Seq,);
PushBack(&Seq,);
ShowSeqList(&Seq);
BubbSort(&Seq);
ShowSeqList(&Seq);
}

C语言实现顺序表的更多相关文章

  1. C++语言实现顺序表

    C++语言实现顺序表 顺序表的定义及其特点 顺序表的定义是:把线性表中的所有表项按照其逻辑顺序依次存储到从计算机存储中指定存储位置开始的一块连续的存储空间中. 这样,线性表中第一个表项的存储位置就是被 ...

  2. C语言实现顺序表(顺序存储结构)

    顺序表(顺序存储结构)及初始化过程详解 顺序表,全名顺序存储结构,是线性表的一种.通过<线性表>一节的学习我们知道,线性表用于存储逻辑关系为"一对一"的数据,顺序表自然 ...

  3. java语言建立顺序表

    package datastructure; //线性表 public interface IList { public void clear(); public boolean isEmpty(); ...

  4. C语言实现顺序表的基本操作(从键盘输入 生成线性表,读txt文件生成线性表和数组生成线性表----三种写法)

    经过三天的时间终于把顺序表的操作实现搞定了.(主要是在测试部分停留了太长时间) 1. 线性表顺序存储的概念:指的是在内存中用一段地址连续的存储单元依次存储线性表中的元素. 2. 采用的实现方式:一段地 ...

  5. c语言实现--顺序表操作

    经过三天的时间终于把顺序表的操作实现搞定了.(主要是在测试部分停留了太长时间) 1;线性表顺序存储的概念:指的是在内存中用一段地址连续的存储单元依次存储线性表中的元素. 2;采用的实现方式:一段地址连 ...

  6. 顺序表及其多种实现方式 --- C/C++

    所谓顺序表,即线性表的顺序存储结构.下面给出的是数据结构---线性表的定义. ADT List{ 数据对象: 线性表的数据对象的集合为{a1,a2,a3,...,an},每个元素的类型为ElemTyp ...

  7. C++实现动态顺序表

    顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构.这样的存储方式使得线性表逻辑上相邻的元素,其在物理存储单元中也是相邻的.只要知道了第一个元素的存 ...

  8. 动态顺序表(C++实现)

    顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构. 这样的存储方式使得线性表逻辑上相邻的元素,其在物理存储单元中也是相邻的.只要知道了第一个元素的 ...

  9. 数据结构C语言版--动态顺序表的基本功能实现(二)

    /* * 若各个方法结构体变量参数为: &L(即地址符加变量)则结构体变量访问结构成员变量时使用"." * 若为:*L(即取地址符加变量)则结构体变量访问结构体成员变量使用 ...

随机推荐

  1. MFC中对基于ODBC对数据ACCESS数据库的增删改查。

    在MFC中可以使用很多方法对数据库进行操作. 什么ODBC  什么ADO之类的,这里要介绍使用的ODBC这种方法,通过本文的阅读可以达初步掌握在MFC里面通过ODBC访问ACCESS数据库. 涉及到的 ...

  2. jmeter接口测试实战

    请求方法:get/post 接口请求地址:http://172.22.24.26:8080/fundhouse/external/getdata?name=xxxx &fund_udid=35 ...

  3. jenkins slave启动报错:hudson.util.IOException2: Slave JVM has terminated. Exit code=126

    添加mac slave节点报错如下:Expanded the channel window size to 4MB [11/07/14 19:11:54] [SSH] Starting slave p ...

  4. Android 按钮 弹出对话框

    ackage com.example.helloworld; import android.os.Bundle;import android.app.Activity;import android.a ...

  5. 部署apollo-client到maven私服上时遇到的问题及排查过程

    场景回顾: 应用客户端如果需要接入到Apollo配置服务中心的话,需要引用apollo-client的依赖包使之与config-server保持连接,从而可以及时的收到更新之后的配置信息. 1.将ap ...

  6. 初探Nginx服务器的整体架构

    高度模块化的设计是 Nginx 的架构基础.Nginx 服务器被分解为多个模块,每个模块就是一个功能模块,只负责自身的功能,模块之间严格遵循“高内聚,低耦合”的原则. 核心模块 核心模块是 Nginx ...

  7. netty9---使用编码解码器

    客户端: package com.client; import java.net.InetSocketAddress; import java.util.Scanner; import java.ut ...

  8. servlet的总结

    tomcat在启动的时候 加载webapp下面的web.xml,加载里面定义的servlet. web.xml文件有两部分:servlet类定义和servlet映射定义每个被载入的servlet类都有 ...

  9. vmware基于主机模式实现上网(win10)

    首先查看本机win10的网络情况: 网卡VMnet1就是主机模式的网卡,确认本机win10共享了网络给vmnet1这张网卡,如果没有共享,那么进行设置: 进行上述设置,然后在vmnet1网卡上设置ip ...

  10. Linux ASLR的实现

    ASLR大家都会听说过,但是Linux平台下应用程序的ASLR的情况是怎么样的呢?我在这里将ASLR分为几个小的部分来阐述,包括了栈的随机化,堆的随机化,mmap的随机化,以及pie程序运行时的主模块 ...