数据结构源码笔记(C语言):线性表的顺序表示
/* SeqList.c*/
/*线性表的顺序表示:函数实现*/#include <stdio.h>
#include <stdlib.h>
//#include "SeqList.h"//#define MAXNUM 100
typedef int DataType;typedef struct SeqList
{int MAXNUM;int n;int *element;
} PSeqList;PSeqList *createNullList_seq(DataType m)
{/* 创建新的顺序表 */PSeqList *palist = (PSeqList *)malloc(sizeof(struct SeqList));if (palist!=NULL){palist->element = (int*)malloc(sizeof(DataType)*m);if (palist->element){palist->MAXNUM=m;palist ->n = 0; /* 空表长度为0 */return (palist);}else free(palist);}printf("Out of space!!\n"); /* 存储分配失败 */return NULL;
}int isNullList_seq( PSeqList *palist )
{/*判别palist所指顺序表是否为空表。*/return ( palist->n == 0 );
}int locate_seq( PSeqList *palist,DataType x)
{/*求x在palist所指顺序表中的下标 */int q;for ( q=0; q<palist->n; q++) if(palist->element[q] == x) return (q);return (-1);
}int insertPre_seq(PSeqList *palist,DataType p,DataType x)/* 在palist所指顺序表中下标为p的元素之前插入元素x */{ int q;if ( palist->n >= palist-> MAXNUM ) { /* 溢出 */printf("Overflow!\n");return ( 0 );}if (isNullList_seq(palist)) { /*空顺序表插入 */palist->element[0] = x; /* 插入元素x */palist->n = 1; /* 元素个数为1 */return ( 1 );}if (p<0 || p>palist->n ) { /* 不存在下标为p的元素 */printf("Not exist! \n"); return (0 );}for(q=palist->n - 1; q>=p; q--) /* 插入位置及之后的元素均后移一个位置 */palist->element[q+1] = palist->element[q];palist->element[p] = x; /* 插入元素x */palist->n = palist->n + 1; /* 元素个数加1 */return ( 1 );
}int insertPost_seq(PSeqList *palist, DataType p, DataType x)
/* 在palist所指顺序表中下标为p的元素之前插入元素x */
{ int q;if ( palist->n >= palist-> MAXNUM ) { /* 溢出 */printf("Overflow!\n");return ( 0 );}if ( isNullList_seq(palist) ) { /*空顺序表插入 */palist->element[0] = x; /* 插入元素x */palist->n = 1; /* 元素个数为1 */return ( 1 );}if (p<0 || p>palist->n ) { /* 不存在下标为p的元素 */printf("Not exist! \n"); return (0 );}for(q=palist->n - 1; q>p; q--) /* 插入位置及之后的元素均后移一个位置 */palist->element[q+1] = palist->element[q];palist->element[p] = x; /* 插入元素x */palist->n = palist->n + 1; /* 元素个数加1 */return ( 1 );
}int deleteP_seq( PSeqList *palist, int p )
/* 在palist所指顺序表中删除下标为p的元素 */
{ int q;if ( p<0 || p>palist->n - 1 ) /* 不存在下标为p的元素 */{printf("Not exist!\n ");return (0);}for(q=p; q<palist->n-1; q++) /* 被删除元素之后的元素均前移一个位置 */palist->element[q] = palist->element[q+1];palist->n = palist->n - 1; /* 元素个数减1 */return ( 1 );
}int deleteV_seq(PSeqList *palist,DataType q)
{if(locate_seq(palist,q)!=-1);if(deleteP_seq(palist,q)) return 1;else return 0;return 0;
}int main()
{int i=0;PSeqList *palist;palist=createNullList_seq(60);insertPre_seq(palist,0,40);printf("%d",locate_seq( palist,40));if(!(isNullList_seq(palist))){for(i=0;i<40;i++) insertPre_seq(palist,0,39-i);}for(i=41;i<56;i++)insertPost_seq(palist, i, i);deleteP_seq(palist, 54 );deleteV_seq(palist,53);for(i=0;i<palist->n;i++)printf("%d\n",(palist->element[i]));printf("%d\n",locate_seq( palist,14));printf("%d\n",palist->n);return 0;}
数据结构源码笔记(C语言描述)汇总:
数据结构源码笔记(C语言):英文单词按字典序排序的基数排序
数据结构源码笔记(C语言):直接插入排序
数据结构源码笔记(C语言):直接选择排序
数据结构源码笔记(C语言):置换-选择算法
数据结构源码笔记(C语言):Huffman树字符编码
数据结构源码笔记(C语言):Josephus问题之顺序表
数据结构源码笔记(C语言):Josephus问题之循环链接表
数据结构源码笔记(C语言):多项式合并
数据结构源码笔记(C语言):二叉树之叶子结点旋转销毁
数据结构源码笔记(C语言):哈夫曼树
数据结构源码笔记(C语言):集合的位向量表示
数据结构源码笔记(C语言):链接队列
数据结构源码笔记(C语言):链接栈
数据结构源码笔记(C语言):线性表的单链表示
数据结构源码笔记(C语言):线性表的顺序表示
数据结构源码笔记(C语言):栈的基本操作
数据结构源码笔记(C语言):中缀表达式
数据结构源码笔记(C语言):希尔插入排序
数据结构源码笔记(C语言):索引文件建立和查找
数据结构源码笔记(C语言):冒泡排序
数据结构源码笔记(C语言):快速排序
数据结构源码笔记(C语言):可变长度字符串的快速排序
数据结构源码笔记(C语言):基数排序
数据结构源码笔记(C语言):二路归并排序
数据结构源码笔记(C语言):堆排序
数据结构源码笔记(C语言):二叉树搜索树Kruskal
数据结构源码笔记(C语言):二叉搜索树Prim
数据结构源码笔记(C语言):最短路径弗洛伊德算法
数据结构源码笔记(C语言):深度、广度优先生成树
数据结构源码笔记(C语言):邻接矩阵转化邻接表
数据结构源码笔记(C语言):统计字符串中出现的字符及其次数
数据结构源码笔记(C语言):顺序查找
数据结构源码笔记(C语言):哈希表的相关运算算法
数据结构源码笔记(C语言):分块法查找
数据结构源码笔记(C语言):二分查找
数据结构源码笔记(C语言):二叉树遍历
数据结构源码笔记(C语言):二叉平衡树的相关操作算法
数据结构源码笔记(C语言):二叉排序树的基本操作算法
数据结构源码笔记(C语言):B树的相关运算算法
数据结构源码笔记(C语言):线性表的顺序表示相关推荐
- 数据结构源码笔记(C语言):线性表的单链表示
/* LinkList.c*/ /*线性表的单链表示:函数实现*/#include <stdio.h> #include <stdlib.h> //#include " ...
- 数据结构源码笔记(C语言):Josephus问题之顺序表
/*josephus_seq.c*/ /*Josephus问题: 顺序表实现*/#include <stdio.h> #include <stdlib.h>#define FA ...
- 数据结构源码笔记(C语言):哈希表的相关运算算法
//实现哈希表的相关运算算法 #include<stdio.h> #include<malloc.h> #include<string.h>#define MaxS ...
- 数据结构源码笔记(C语言描述)汇总
数据结构源码笔记(C语言):英文单词按字典序排序的基数排序 数据结构源码笔记(C语言):直接插入排序 数据结构源码笔记(C语言):直接选择排序 数据结构源码笔记(C语言):置换-选择算法 数据结构源码 ...
- 数据结构源码笔记(C语言):英文单词按字典序排序的基数排序
//实现英文单词按字典序排序的基数排序算法#include<stdio.h> #include<malloc.h> #include<string.h>#defin ...
- 数据结构源码笔记(C语言):索引文件建立和查找
//实现索引文件建立和查找算法#include<stdio.h> #include<malloc.h> #include<string.h> #include< ...
- 数据结构源码笔记(C语言):快速排序
//实现快速排序算法 #include<stdio.h> #include<malloc.h> #define MAXE 20typedef int KeyType; type ...
- 数据结构源码笔记(C语言):冒泡排序
//冒泡排序算法实现 #include<stdio.h> #include<malloc.h> #define MAXE 20typedef int KeyType; type ...
- 数据结构源码笔记(C语言):希尔插入排序
//实现希尔插入排序算法 #include<stdio.h> #include<malloc.h> #define MAXE 20typedef int KeyType; ty ...
最新文章
- Python 3 利用 Dlib 实现人脸检测和剪切
- sqlserver创建存储过程、函数、
- java基础---System类
- picker封装 uniapp_uniapp自定义picker城市多级联动组件
- python两列相乘_如何将pandas中具有不同索引的两列相乘?
- python和java的区别-python和java的区别,看了这个就会区分了!
- Atitit 表达式原理 语法分析 原理与实践 解析java的dsl 递归下降是现阶段主流的语法分析方法...
- C# DirectX.AudioVideoPlayback音频视频播放
- OI国家集训队论文集1999~2018
- 【NLP】依存句法关系符号解释
- 罗永浩2014 一个理想主义者的创业故事Ⅳ 演讲稿实录
- 神经网络之输出层设计
- 萤石视频监控模式的参数decoderPath配置问题
- 透视表中如何使用多条件中位数
- Linux时钟管理clk devm_clk_get clk_prepare_enable等学习
- FFMPEG中的两输入Filter实现(一)
- 离散数学笔记_第一章:逻辑和证明(1)
- 新闻组上看到一篇关于linux内核编译的文章,留待日后参考。
- 互联网+竞赛赛后总结
- Python-爬取今日头条美图
热门文章
- postman设置域名_Postman中文文档——证书(Certificates)
- 用python实现todolist_So easy !用 Python 开发一个todolist
- 处理报错:java/lang/NoClassDefFoundError: java/lang/Object
- linux查看占用内存最多的程序
- java学习-http中get请求的非ascii参数如何编码解码探讨
- UML Design Via Visual Studio-Sequence Diagram
- jae的mongo数据库管理工具(原创)
- ubuntu20.04安装noetic版本ros
- 云迹科技:站在酒店场景服务机器人的风口
- C#对Excel的一些操作【一】