c语言:【顺序表】静态顺序表的头插、头删

原创 2016年05月30日 17:17:18
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<string.h>

#define MAXSIZE 1000

typedef int DateType;
typedef struct SeqList
{
    DateType arr[MAXSIZE];
    size_t size;
}SeqList;


//打印静态顺序表
void PrintSeqList(SeqList *Seq)
{
    assert(Seq);
    if (Seq->size == 0)
    {
        printf("静态顺序表当前为空!\n");
        return;
    }

    for (int index = 0; index < Seq->size; index++)
    {
        printf("%d-> ", Seq->arr[index]);

    }
}


//初始化
void init(SeqList *Seq)
{
    assert(Seq);
    memset(Seq->arr, 0, sizeof(DateType)* MAXSIZE);
    Seq->size = 0;
}



//头插
void PushHead(SeqList *Seq, DateType x)
{
    assert(Seq);
    /*Seq->size = 0;*/
    if (Seq->size >= MAXSIZE)
    {
        printf("静态顺序表当前已满,无法插入!\n");
        return;
    }

    Seq->size++;
    for (int index = Seq->size - 1; index >= 0; index--)
    {
        Seq->arr[index + 1] = Seq->arr[index];
    }
    Seq->arr[0] = x;
}


//头删
void PopHead(SeqList *Seq)
{
    if (Seq->size >= MAXSIZE)
    {
        printf("静态顺序表当前已满,无法插入!\n");
        return;
    }
    
    for (int index = 0; index < Seq->size; index++)
    {
        Seq->arr[index] = Seq->arr[index + 1];
    }
    Seq->size--;
}


void Test2(SeqList *Seq)
{
    init(Seq);
    PushBack(Seq, 0);
    PushBack(Seq, 1);
    PushBack(Seq, 2);
    PushBack(Seq, 3);
    PushBack(Seq, 4);
    PushBack(Seq, 5);

    PrintSeqList(Seq);
    printf("\n");

    PushHead(Seq, 10);
    PrintSeqList(Seq);
    printf("\n");

    PopHead(Seq);
    PrintSeqList(Seq);
    printf("\n");
}


int main()
{
    SeqList Seq;
    Seq.size = 0;
    Test2(&Seq); 
    system("pause");
    return 0;
}


本文出自 “Han Jing's Blog” 博客,请务必保留此出处http://10740184.blog.51cto.com/10730184/1743136

【C语言】静态顺序表和动态顺序表的实现

C语言
  • SuLiJuan66
  • SuLiJuan66
  • 2015年06月29日 19:31
  • 1527

静态分配的顺序表

顺序表的存储可分为动态存储和静态存储,动态和静态的区别是存储地址是动态申请还是直接定义的数组,其存储地址都是连续的,C中借助数组来实现。 其主要特性是具有很好的随机访问特性和存储密度高。 其插入,删除...
  • u014260236
  • u014260236
  • 2016年02月29日 11:33
  • 512

C语言 顺序表的实现(静态)

最近复习到C语言的顺序表,把它实现一遍。 给出顺序表的定义#define MAX_SIZE 100 typedef int DataType; typedef struct SeqList { ...
  • xy913741894
  • xy913741894
  • 2016年09月11日 15:02
  • 376

【数据结构】C语言实现顺序表

这是自己上数据结构课程时候的练习,贴出来,做备忘。 #include #include #include #include #include #define LIST_INIT_SIZ...
  • lchad
  • lchad
  • 2014年12月24日 22:49
  • 5301

顺序表的实现(C语言)

#include #include #define MAXSIZE 100 struct List { int element[MAXSIZE]; //链表中最大节点数 int len; ...
  • yangshuangtao
  • yangshuangtao
  • 2015年04月09日 08:29
  • 3782

数据结构(一)——顺序表(C语言实现)

顺序表的简单实现
  • flueky
  • flueky
  • 2016年09月30日 18:00
  • 1485

C语言实现顺序表的基本操作

数据结构老师给了几个接口,叫我们自己去实现顺序表的功能,感想就是顺序表实现起来比链表容易,但是还是要花费挺长的时间来构思,这一次的收获还是挺多的。...
  • OnlyLove_KD
  • OnlyLove_KD
  • 2016年09月12日 09:06
  • 6214

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

#define _CRT_SECURE_NO_WARNINGS 1 #include #include #include #include #define MAX_SIZE 5 typedef in...
  • hanjing_1995
  • hanjing_1995
  • 2016年05月30日 17:16
  • 117

C语言实现顺序表的初始化,插入,删除,查找

#include #include #define LIST_INIT_SISE 100 // 线性表存储空间的初始分配量 #define LIST_INCREASE_SISE 20 ...
  • BiuBiu741
  • BiuBiu741
  • 2016年12月03日 23:24
  • 1736

C语言实现合并两个有序(从小到大)顺序表为一个顺序表

#include #include typedef int ElemType; typedef int status; # define LIST_INIT_SIZE 100 # define OK...
  • zzldm
  • zzldm
  • 2017年05月11日 17:18
  • 1436
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c语言:【顺序表】静态顺序表的头插、头删
举报原因:
原因补充:

(最多只允许输入30个字)