C语言【顺序表】顺序表的初始化,头插,尾插,头删,尾删,增删查改,全删

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<assert.h>
#include<stdlib.h>
#include<string.h>

#define MAX_SIZE 5
typedef int DataType;

typedef struct SeqList
{
    size_t size;
    DataType array[MAX_SIZE];
}SeqList;

//void InitSeqList(SeqList* pSeq)
//{
//    assert(pSeq);
//    memset(pSeq->size, 0, sizeof(DataType)*MAX_SIZE);
//    pSeq->size = 0;
//}

//void PushBack(SeqList* pSeq, DataType x)
//{
//    assert(pSeq);
//    if (pSeq->size >= MAX_SIZE)
//    {
//        printf("顺序表已满,无法插入!");
//        return;
//    }
//    pSeq->array[pSeq->size++] = x;
//    pSeq->size++;
//}

//void PopBack(SeqList* pSeq)
//{
//    assert(pSeq);
//    if (pSeq->size <= 0)
//    {
//        printf("顺序表已空,无法删除!");
//        return;
//    }
//    pSeq->size--;
//}

//void PushFront(SeqList* pSeq, DataType x)
//{
//    assert(pSeq);
//    int begin = pSeq->size - 1;
//    int i = 0;
//    if (pSeq->size >= MAX_SIZE)
//    {
//        printf("顺序表已满,无法插入!");
//        return;
//    }
//    for (i = begin; i >= 0; i--)
//    {
//        pSeq->array[begin + 1] = pSeq->array[begin];
//    }
//    pSeq->array[0] = x;
//    pSeq->size++;
//}

//
//void PopFront(SeqList* pSeq)
//{
//    assert(pSeq);
//    int begin = 1;
//    if (pSeq->size <= 0)
//    {
//        printf("顺序表已空,无法删除!");
//        return;
//    }
//    for (begin = 1; begin < pSeq->size; begin ++)
//    {
//        pSeq->array[begin -1] = pSeq->array[begin];
//    }
//    pSeq->size--;
//}

//void Insert(SeqList* pSeq, size_t pos, DataType x)
//{
//    assert(pSeq);
//    int begin = pSeq->size;
//    if (pSeq->size >= MAX_SIZE)
//    {
//        printf("顺序表已满,无法插入!");
//        return 0;
//    }
//    for (; begin > pos;begin--)
//    {
//        pSeq->array[begin] = pSeq->array[begin-1];
//    }
//    pSeq->array[pos] = x;
//    pSeq->size++;
//}

//int Find(SeqList* pSeq,DataType x)
//{
//    int i = 0;
//    for (; i < pSeq->size; i++)
//    {
//        if (pSeq->array[i] == x)
//        {
//            return i;
//        }
//    }
//    return -1;
//}

//void Erase(SeqList* pSeq, size_t pos)
//{
//    assert(pSeq);
//    int begin = 0;
//    if (pSeq->size <= 0)
//    {
//        printf("顺序表已空,无法删除!");
//        return;
//    }
//    assert(pos < pSeq->size);
//
//    for (; begin < pSeq->size; ++begin)
//    {
//        pSeq->array[begin - 1] = pSeq->array[begin];
//    }
//    pSeq->size--;
//}

//int Remove(SeqList* pSeq, DataType x)
//{
//    int pos;
//    assert(pSeq);
//
//    pos = Find(pSeq, 0, x);
//    if (pos != -1)
//    {
//        Erase(pSeq, pos);
//    }

//    return pos;
//}

//void RemoveAll(SeqList* pSeq, DataType x)
//{
//    int count = 0;
//    int begin = 0;
//    assert(pSeq);
//
//    for (; begin < pSeq->size; ++begin)
//    {
//        if (pSeq->array[begin] == x)
//        {
//            ++count;
//        }
//        else
//        {
//            pSeq->array[begin - count] = pSeq->array[begin];
//        }
//    }
//
//    pSeq->size -= count;
//}

void PrintSeqList(SeqList* pSeq)
{
    int i = 0;
    assert(pSeq);

    for (; i < pSeq->size; ++i)
    {
        printf("%d ", pSeq->array[i]);
    }

    printf("\n");
}
时间: 2024-10-08 16:11:23

C语言【顺序表】顺序表的初始化,头插,尾插,头删,尾删,增删查改,全删的相关文章

C++实现静态顺序表的增删查改以及初始化

C++实现静态顺序表的增删查改 顺序表:用一段地址连续的存储单元依s次存储数据元素的线性结构,是线性表的一种. //SeqList.h #pragma once #include <assert.h> #include <string.h> #define MAX_SIZE 5 typedef int DataType; //定义顺序表结构体 typedef struct SeqList { DataType array[MAX_SIZE];  //数据块数组 size_t siz

c++中的顺序表写法,主要实现(增删查改,构造函数,运算符重载)

本文的内容主要是,利用c++写出顺序表,并对写出的代码进行测试, 主要实现的功能:实现对顺序表的增删查改, 要写的函数:构造函数,赋值运算符重载,析构函数.在编写代码过程中应注意到深浅拷贝问题. 下面是顺序表的类函数: #pragma once #include<iostream> using namespace std; typedef int DataType; class SeqList { public: SeqList(); SeqList(DataType *array, size

用VC++操作ACESS数据库(创建数据库、建立新表、连接、增删查改)

转载http://liheng19870711.blog.163.com/blog/static/8716802201121724528232/进行修改 用VC++操作ACESS数据库(创建数据库.建立新表.连接.增删查改) 首先在StdAfx.h中包含如下头文件#import "C:\Program Files\Common Files\system\ado\msadox.dll"  // 创建数据库必用#import"C:\Program Files\Common Fil

SSH框架的多表查询和增删查改 (方法一)上

原创作品,允许转载,转载时请务必标明作者信息和声明本文章==>  http://www.cnblogs.com/zhu520/p/7772823.html   因为最近在做Android 练习的项目,使用增删查改的时候还是使用jdbc的增删查改 发现实在是太麻烦了,所有果断抛弃它,使用ssh, 但是发现不会....经过了四天的时间我终于弄懂了. 哪个大神看到有问题指点一下. 在弄这前要先明白一下@Component @Controller @Service @Repository 这些注释 可以

SQL Server 表的管理_关于表的操作增删查改的操作的详解(案例代码)

SQL Server 表的管理_关于表的操作增删查改的操作的详解(案例代码) 概述: 表由行和列组成,每个表都必须有个表名. SQL CREATE TABLE 语法 CREATE TABLE table_name ( column_name1 data_type(size), column_name2 data_type(size), column_name3 data_type(size), .... ); 1.查看表 exec sp_help table1; 2.创建表 create tab

C语言:【动态顺序表】动态顺序表的初始化、打印、尾插PushBack、尾删PopBack

#include<stdio.h> #include<stdlib.h> #include<assert.h> #include<string.h> #include<malloc.h> typedef int DateType; typedef struct SeqList {     DateType *arr;     size_t capacility;     size_t size; }SeqList; //创建空间 void Che

C语言实现顺序表的增删查改以及排序

顺序表是线性表中的一种重要的数据结构,也是最基础的数据结构,今天我用C语言实现下线性表的基本操作,以及冒泡排序与选择排序在线性表中的算法实践,代码如下: seqlist.h: #ifndef __SEQLIST__ #define __SEQLIST__ #define MAX 5 #include <stdlib.h> typedef int DataType; typedef struct SeqList { DataType array[MAX]; size_t size; }SeqLi

顺序表的增删查改、二分查找、冒泡和快速排序

SeqList 声明文件 #pragma once #define MAX_SIZE 5 typedef int DataType; typedef struct SeqList { DataType array[MAX_SIZE]; size_t size; }SeqList; void PrintSeqList(SeqList* pSeq); void InitSeqList(SeqList* pSeq);//初始化 void PushBack(SeqList* pSeq, DataType

C语言链表的增删查改

小经验:在VS2017中,使用while(scanf(“%d”,&i)!= NULL){......}时,结束输入需要输入三次ctrl+z+空格 func.h #include <stdlib.h> #include <string.h> typedef struct student { int number; struct student* pnext; }stu, *pstu; void list_print(pstu);//打印 void list_head_inse