顺序表C语言版
#include <stdio.h>
/*
* 顺序表最多输入N个数
*/
#define N 10
#define OK 1
#define ERROR -1 struct sequeuelist {
int *elem;
int length;
int listsize;
};
/*
* 因为l是指针,所以请注意->的使用,而不是L.
*/
int sequeuelist_init(struct sequeuelist *l) {
l->elem = (int *)malloc(N * sizeof(int));
if (!l->elem) {
return ERROR;
}
l->length = ;/* 空表长度为0 */
l->listsize = N;/* 初始存储容量 */
return OK;
}
/*
* 插入函数,在实验时,可暂不考虑空间不足的情况
*/
int sequeuelist_insert(struct sequeuelist *l, int i, int e) {
int *q = NULL;
int *p = NULL;
q = &(l->elem[i-]);
for (p = &(l->elem[l->length]); p > q; --p) {
*(p+) = *p;
}
*q = e;
l->length++;
return OK;
}
/*
* 输出顺序表所有结点的值
*/
int sequeuelist_print(struct sequeuelist *l) { int *start = NULL;
int *stop = NULL; stop = &(l->elem[l->length]);
for (start = &(l->elem[]); start< stop; start++) {
printf("%d\t", *start);
}
printf("\n");
} /*
* 顺序表l,从第i各元素起,连续删除k个元素。
*/
int sequeuelist_delete_ith_to_kth(struct sequeuelist *l, int i, int k)
{
int *p = NULL;/*如果p为指向struct squeue的指针类型,则p++后,p增加的是struct squeue类型成员的长度*/
int *q = NULL;
int *r = NULL;
int length_temp = l->length-;
p = &(l->elem[i-]);
r = &(l->elem[length_temp]);
for (q = &(l->elem[i+k-]); q <= &(l->elem[length_temp]); /*q++*/) {
*(p++) = *q;
q++;
l->length--;
} return OK;
}
/*
*
*/
int main(void) {
int i;
int e;
int n = ;
struct sequeuelist *l = NULL;
struct sequeuelist M;
l = &M; sequeuelist_init(l);
printf("Please input n numbers:\n");
/*
* 由于线性表的下标是从0开始的
*/
for (i = ; i <= n; i++) {/* 创建初始的顺序表,包含n个数 */
scanf("%d", &e);
sequeuelist_insert(l, i, e);
}
sequeuelist_print(l);/*输出各结点的值*/
///*
//sequeuelist_insert(l, 3, 999);/*在第三个元素前插入999*/
//printf("After insert:\n");
//*/
//sequeuelist_print(M);/*输出插入后各结点的值*/
sequeuelist_delete_ith_to_kth(l, , );
sequeuelist_print(l);
return ;
}
顺序表C语言版的更多相关文章
- 数据结构与算法之顺序表C语言实现
顺序表等相关概念请自行查阅资料,这里主要是实现. 注: 1.顺序表C语言实现: 2.按较简单的方式实现,主要帮助理解,可在此基础上修改,更加完善: 3.提供几个简单函数,可自行添加功能: 4.可用C+ ...
- 数据结构:顺序表(python版)
顺序表python版的实现(部分功能未实现) #!/usr/bin/env python # -*- coding:utf-8 -*- class SeqList(object): def __ini ...
- 线性表之顺序表(C语言实现)
线性表是从数据元素的逻辑结构上定义的. 这种数据元素的逻辑结构的特征如下: 1.除开第一个和最后一个元素之外.所有元素都有一个前驱元素和后继元素. 2.第一个元素无前驱元素,但有后继元素. 3.最后一 ...
- 顺序表-Go语言实现
简单理解就是数组: 优缺点及使用场景 优点: 随机访问,在O(1)时间内找到第i个元素: 数据表中的数据是连续存放的,因此只要知道数据表中第一个元素的地址,那么后面的数据元素的地址就可以马上算出来. ...
- 【小白成长撸】--顺序栈(C语言版)
// 顺序栈.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h"//test1.0--栈表仅限Int类型 #include <stdio. ...
- 顺序表-C语言实现
顺序存储线性表的结构体: #define MAXSIZE 100 //数组最大长度 typedef int ElemType; //元素类型 typedef struct //定义线性表结构体 { E ...
- 数据结构C语言版--动态顺序表的基本功能实现(二)
/* * 若各个方法结构体变量参数为: &L(即地址符加变量)则结构体变量访问结构成员变量时使用"." * 若为:*L(即取地址符加变量)则结构体变量访问结构体成员变量使用 ...
- 数据结构C语言版干货------->线性表之顺序表
一:头文件定义 /*************************************************************************** *项目 数据结构 *概要 逻辑 ...
- 顺序表的基本方法实现C语言版
顺序表--------------线性表的第一个儿子 这个儿子的结构体定义: typedef int ElemType;//取别名 typedef struct link{ ElemType * he ...
随机推荐
- 【GoLang】golang 微服务框架 介绍
原文如下: rpcx是一个类似阿里巴巴 Dubbo 和微博 Motan 的分布式的RPC服务框架,基于Golang net/rpc实现. 谈起分布式的RPC框架,比较出名的是阿里巴巴的dubbo,包括 ...
- POJ 3009
http://poj.org/problem?id=3009 一个搜索的题目: 大意就是一个冰球,在冰面上滑动,你打击一次,就沿一个反向滑动,知道碰到墙就会停下,而墙则会破碎. 求从起点到终点的最短的 ...
- Appium+Robotframework实现Android应用的自动化测试-2:Windows中启动Appium和模拟器
一.启动Appium 安装好了之后,在桌面或者菜单中找到Appium,分别双击或点击打开Appium.exe,如果一切正常,接着会出现一个Appium启动后的界面窗口,如下图所示. 1.1 Andro ...
- linux /usr/bin/ld cannot find 解决
问题: 在linux环境编译应用程式或lib的source code时常常会出现如下的错误讯息: /usr/bin/ld: cannot find -lxxx 这些讯息会随着编译不同类型的source ...
- MySQL表中数据的迁移
INSERT INTO `crm_attachment`(OPERATOR_ID,ATTACHMENT_ID,TYPE ) SELECT APPLICATION_ID ,ATTACHMENT_ID,' ...
- Angular中使用Rainbow
在使用js类库和框架的时候,大家都习惯于编写自己的使用示例,如果能将示例中的html,js和css 进行展示, 并进行高亮显示,效果会很棒,例如在html高亮显示jquery代码 上面的示例是使用ra ...
- MySQL 通过idb文件恢复Innodb 数据【转】
昨晚收到一则求助,一个用户的本地数据库的重要数据由于误操作被删除,需要进行紧急恢复,用户的数据库日常并没有进行过任何备份,binlog也没有开启,所以从备份和binlog入手已经成为不可能,咨询了丁奇 ...
- ABAP 仓库理货单导出
*&---------------------------------------------------------------------* *& Report *& ...
- codevs 3290 华容道(SPFA+bfs)
codevs 3290华容道 3290 华容道 2013年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目描述 Description 小 B 最近迷上了华容道,可是 ...
- mvc EF
一:数据库不存在时重新创建数据库 复制内容到剪贴板程序代码 Database.SetInitializer<testContext>(new CreateDatabaseIfNotExis ...