c语言:【顺序表】静态顺序表的头插、头删
2016-02-18 21:03
531 查看
#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; }
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 如何写好 C main 函数
- C#数据结构之顺序表(SeqList)实例详解
- Lua和C语言的交互详解
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- C语言编程中统计输入的行数以及单词个数的方法
- C语言自动生成enum值和名字映射代码
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中计算正弦的相关函数总结
- 使用C语言详解霍夫曼树数据结构
- 探讨C语言的那些小秘密之断言
- C语言实现BMP转换JPG的方法
- linux----->shell高级编程----1