数据结构C语言顺序表
#include <stdio.h>
#include <stdlib.h>
typedef int EmenType;
typedef struct Node {
int data;
struct Node *next;
Node() {
next = NULL;
}
} node, *Link;
bool Init(Link head);
bool Insert(Link, int i, EmenType e);
bool Delete(Link p, int i, EmenType &e);
void print(Link p);
void MergeList(Link la, Link lb, Link lc);
int main() {
Link head;
head = (Link) malloc(sizeof(node));
head->next = NULL;
Init(head);
Insert(head, 2, 100);
Link tmp = head;
print(tmp);
int a;
Delete(head, 2, a);
print(head);
Link heada = (Link) malloc(sizeof(node));
Link headb = (Link) malloc(sizeof(node));
Link headc = (Link) malloc(sizeof(node));
Init(heada);
Init(headb);
MergeList(heada, headb, headc);
print(headc);
}
void MergeList(Link heada, Link headb, Link headc) {
headc->data = -1;
while (heada && headb) {
if (heada->data <= headb->data) {
headc->next = heada;
headc = heada;
heada = heada->next;
} else {
headc->next = headb;
headc = headb;
headb = headb->next;
}
}
headc->next = heada ? heada : headb;
free(headb);
}
void print(Link p) {
while (p) {
printf("%d ", p->data);
p = p->next;
}
printf("\n");
}
bool Delete(Link p, int i, EmenType &e) {
int j = 0;
while (j < i - 1 && p) {
++j;
p = p->next;
}
if (!p || j > i - 1) {
return false;
}
Link q = (Link) malloc(sizeof(node));
q = p->next;
p->next = q->next;
e = q->data;
free(q);
return true;
}
bool Insert(Link p, int i, EmenType e) {
int j = 0;
while (p && j < i - 1) {
p = p->next;
j++;
}
if (!p || j > i + 1) {
return false;
}
Link s = (Link) malloc(sizeof(node));
s->data = e;
s->next = p->next;
p->next = s;
return true;
}
bool Init(Link head) {
bool flag = true;
Link p = head;
p->next = NULL;
for (int i = 0; i < 5; i++) {
if (flag) {
p->data = i;
flag = false;
continue;
}
Link s = (Link) malloc(sizeof(node));
s->data = i;
s->next = NULL;
s->next = p->next;
p->next = s;
p = s;
}
return true;
}
数据结构C语言顺序表的更多相关文章
- 数据结构C语言版 表插入排序 静态表
数据结构C语言版 表插入排序.txt两个人吵架,先说对不起的人,并不是认输了,并不是原谅了.他只是比对方更珍惜这份感情./* 数据结构C语言版 表插入排序 算法10.3 P267-P270 编译 ...
- 【数据结构】之顺序表(Java语言描述)
之前总结过使用C语言描述的顺序表数据结构.在C语言类库中没有为我们提供顺序表的数据结构,因此我们需要自己手写,详细的有关顺序表的数据结构描述和C语言代码请见[我的这篇文章]. 在Java语言的JDK中 ...
- 【数据结构】之顺序表(C语言描述)
顺序表是线性表的一种,它将元素存储在一段连续的内存空间中,表中的任意元素都可以通过下标快速的获取到,因此,顺序表适合查询操作频繁的场景,而不适合增删操作频繁的场景. 下面是使用 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语言--数据结构】线性顺序表
线性表的本质: 1.线性表(List)是零个或者多个数据元素的集合: 2.线性表中的数据元素之间是有顺序的: 3.线性表中的数据元素个数是有限的: 4.线性表中的数据元素的类型必须相同: 定义: 线性 ...
- 五种编程语言解释数据结构与算法——顺序表2(java与C++语言实现)
5.java实现方式: 5.1.顺序表的抽象结构 package com.xgp.顺序表; public interface MyList<T> { //1. initList(& ...
- C++数据结构学习之顺序表
顺序表是数据结构中最基本也是应用相当广泛的一种数据结构类型.它通常包含三个私有成分,即指向数据数组的头指针.当前表长以及表的实际容量.表的头指针通常指向数据数组的基地址,通过数组的形式进行访问数据数组 ...
- 数据结构 单链表&顺序表
顺序表: 一般使用数组(C语言中的数组采用顺序存储方式.即连续地址存储)来描述. 优点:在于随机访问元素, 缺点:插入和和删除的时候,需要移动大量的元素. 链表: 优点:插入或删除元素时很方便,使用灵 ...
随机推荐
- 基于Ubuntu系统XAMPP环境安装以及DVWA渗透测试系统安装(详解的不能再详解了)
首先这是X勺年人生第二次博,用来记录一下转折于我而言.做个简介,这个Ubuntu是linux的一种吧,然 然后这个Ubuntu是我刚简单安装(在虚拟机上)没有经过任何配置,从头开始,我这绝壁的小白,其 ...
- 排序算法(Gif动图演示)
冒牌排序(BubbleSort) 冒泡排序是一种比较简单的排序算法,它循环走过需要排序的元素,依次比较相邻的两个元素,如果顺序错误就交换,直至没有元素交换,完成排序. 若对n个人进行排序,我们需要n- ...
- SourceTree提交不了,报git -c diff.mnemonicprefix=false -c core.quotepath=false push -v --tags origin master:master
刚下载好的Soucetree,拉好项目代码却提交不了,害的我百度了好一小会,下面我把我自己最终的解决方案介绍给大家,希望对你们有用. 首先打开 下载好的git 输入命令 ssh-keygen -t ...
- npm 命令
npm instal moduleName [-g] :安装模块,有 -g 或 --global 是全局安装 npm install -g cnpm --registry=https://regis ...
- Java框架spring 学习笔记(十三):log4j介绍
功能 日志功能,通过log4j可以看到程序运行过程的详细信息. 使用 导入log4j的jar包 复制log4j的配置文件,复制到src下面 3.设置日志级别 info:看到基本信息 debug:看 ...
- Android 添加第三方jar包
1,拷贝jar包到项目的\app\libs文件夹下. 2,打开项目下的build.gradle(Module:app)文件,在“dependencies {}”中添加“compile files('l ...
- 通过ajax返回值
通过ajax获取数据 然后使用 在console.log可以得到值 但是 返回值的在另一个ajax却没有结果为空 百度了一下 才发现少加了这句话 这样同步就可以正常使用了
- 2018-2019-2 20175218 实验二《Java面向对象程序设计》实验报告
2018-2019-2 20175218 实验二<Java面向对象程序设计>实验报告 一.面向对象程序设计-1 1.实验要求 参考 http://www.cnblogs.com/roced ...
- 在进行商业运算时解决BigDecimal的精度丢失问题
System.out.println(0.05+0.01); System.out.println(1.0-0.42); System.out.println(4.015*100); System.o ...
- Git简单生成生成公钥和私钥方法
Git简单生成生成公钥和私钥方法 Git配置 Git安装完之后,需做最后一步配置.打开git bash,分别执行以下两句命令 git config --global user.name “用户名” g ...