顺序表的基本方法实现C语言版
顺序表--------------线性表的第一个儿子
这个儿子的结构体定义:
- typedef int ElemType;//取别名
- typedef struct link{
- ElemType * head;//head是一个数组指针,不太清楚的同学,可以百度一下
- ElemType length;
- ElemType size;
- }sqlink;//取别名
顺序表的初始化:
- #include<stdio.h>
- #include<stdlib.h>
- #define MAX_SIZE 20
- typedef int ElemType;
- typedef struct link{
- ElemType * head;
- ElemType length;
- ElemType size;
- }sqlink;
- sqlink InitLink();//方法声明
- int main(){
- sqlink s;
- s = InitLink();
- for(int i = ; i < ; i++){
- s.head[i] = i;
- }
- printf("%d",s.head[]);
- }
- sqlink InitLink(){//方法实现
- sqlink s;
- s.head = (ElemType*)malloc(MAX_SIZE*sizeof(ElemType));//在内存中动态创建
- if(!s.head)//如果创建不成功,就退出
- exit();
- s.length = ;
- s.size = MAX_SIZE;
- return s;
- }
顺序表的插入:
- #include<stdio.h>
- #include<stdlib.h>
- #define MAX_SIZE 20
- typedef int ElemType;
- typedef struct link{
- ElemType * head;
- ElemType length;
- ElemType size;
- }sqlink;
- sqlink InitLink();//方法声明
- sqlink InsertLink(sqlink s ,int i , ElemType e);
- int main(){
- sqlink s;
- s = InitLink();
- for(int i = ; i < ; i++){
- s.head[i] = i;
- }
- printf("%d\n",s.head[]);
- s = InsertLink(s,,);
- printf("%d\n",s.head[]);
- printf("%d\n",s.head[]);
- }
- sqlink InitLink(){//方法实现
- sqlink s;
- s.head = (ElemType*)malloc(MAX_SIZE*sizeof(ElemType));
- if(!s.head)
- exit();
- s.length = ;
- s.size = MAX_SIZE;
- return s;
- }
- sqlink InsertLink(sqlink s ,int i , ElemType e){
- if(i< && i>MAX_SIZE+)
- exit();
- if(s.length == MAX_SIZE)
- exit();
- for(int j = s.length-;j >= i-;j--){
- s.head[j+] = s.head[j] ;
- }
- s.head[i-] = e;
- return s;
- }
剩下的过两天再写,如果有不懂的地方,可以留言!
顺序表的基本方法实现C语言版的更多相关文章
- 五种编程语言解释数据结构与算法——顺序表1(理论与C语言实现)
1.线性表的分类 2.线性表的定义及其基本操作 2.1.定义:线性表是具有相同类型的n(n>=0)个元素的有序序列,其中n为表长,当n=0时,该表为空表. 2.3.线性表的逻辑结构为: 2.4. ...
- 五种编程语言解释数据结构与算法——顺序表3(JavaScript与Python语言实现)
7.JavaScript语言实现 7.1.用ES6语法编写顺序表类 //1.创建类 class MyList { //1. initList(&L):初始化表.构造一个空的线性表.放回值应该是 ...
- 空顺序表的实现(基于c语言)
书中对于创建一个空线性表的定义如下: struct SeqList{ int MAXNUM; // 顺序表中最大元素的个数(也就是最多多少个元素),(其实MAXNUM也可以定义在外面) int n; ...
- 顺序表的静态存储(C语言实现)
顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构. 1.顺序表的结构体声明 #define MAX_SIZE 5 //定义数组的大小 typed ...
- 五种编程语言解释数据结构与算法——顺序表2(java与C++语言实现)
5.java实现方式: 5.1.顺序表的抽象结构 package com.xgp.顺序表; public interface MyList<T> { //1. initList(& ...
- 线性表的链式存储C语言版
#include <stdio.h> #include <malloc.h> #define N 10 typedef struct Node { int data; stru ...
- 【数据结构】之顺序表(Java语言描述)
之前总结过使用C语言描述的顺序表数据结构.在C语言类库中没有为我们提供顺序表的数据结构,因此我们需要自己手写,详细的有关顺序表的数据结构描述和C语言代码请见[我的这篇文章]. 在Java语言的JDK中 ...
- 数据结构4:顺序表(线性表的顺序存储结构)及C语言实现
逻辑结构上呈线性分布的数据元素在实际的物理存储结构中也同样相互之间紧挨着,这种存储结构称为线性表的顺序存储结构. 也就是说,逻辑上具有线性关系的数据按照前后的次序全部存储在一整块连续的内存空间中,之间 ...
- C语言实现顺序表(顺序存储结构)
顺序表(顺序存储结构)及初始化过程详解 顺序表,全名顺序存储结构,是线性表的一种.通过<线性表>一节的学习我们知道,线性表用于存储逻辑关系为"一对一"的数据,顺序表自然 ...
随机推荐
- 微软 Build 大会发布大量开发工具与服务!编码、协作、发布,如丝般顺滑
Microsoft Build 2020开发者大会已经圆满落幕,在连续两天48小时的不间断直播中,来自全世界的开发者共赴盛宴,场面相当壮观.在这一年一度的大聚会里,微软也是诚意满满,带来了一连串的产品 ...
- block和delegate的选择
block和delegate均为常用回调方式 (暂不讨论通知) 代理 优点: 设置某个对象的代理,代理对象可以与被代理对象不直接相关,即使两个对象距离较远,传值也比较方便. 代理方法内可以方便调用 ...
- thymeleaf将对象Model数据抛到HTML页面
thymeleaf名称空间 <!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymelea ...
- Spring bean工厂配置头文件
命名 beans.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=" ...
- java class 字节码
java class 字节码 协议: class文件 魔数(Magic):4byte -> 0xCAFEBABE 类似2f3f 版本(Version):4Byte -> 0x0000003 ...
- ngnix随笔三
1.location模块 在server中也可以嵌套location 例 server{ listen 80; server_name www.a.com; root /data/vhosts/; ...
- 小智的旅行(Bridge)51nod 提高组试题
luogu AC传送门(官方数据) 题目描述 小智最喜欢旅行了,这次,小智来到了一个岛屿众多的地方,有N座岛屿,编号为0到N-1,岛屿之间 由一些桥连接,可以从桥的任意一端到另一端,由于岛屿可能比较大 ...
- [COCOS2DX-LUA]0-004.cocos2dx中的DrawNode的init的方法问题
1.诱因 近期,项目接入了Bugly, 上报了一些平常测试不出来,或者很难重现的bug,这类bug非常难排查.原因有二,第一,问题无法重现,第二,修改了无法立即验证结果.有一个问题困恼了我很久,就是一 ...
- [安卓基础] 009.组件Activity详解
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- Alpha冲刺 —— 个人总结
这几日Alpha冲刺的个人进展汇总,收获满满,我成长了. 我们的团队博客链接,团队作业第五次--Alpha冲刺 4.30 今日进展 改进数据库:字段命名重新规范,在record表中添加confirme ...