数据结构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语言中的数组采用顺序存储方式.即连续地址存储)来描述. 优点:在于随机访问元素, 缺点:插入和和删除的时候,需要移动大量的元素. 链表: 优点:插入或删除元素时很方便,使用灵 ...
随机推荐
- 远程服务器设置Mysql的操作权限
mysql -u root -p; root用户输入密码登录mysql服务器 select host, user from mysql.user; 查询数据库的所有用户以前权限的ip host: ...
- AS报:Manifest merger failed with multiple errors, see logs
* What went wrong:Execution failed for task ':app:processDebugManifest'. Manifest merger failed with ...
- step_by_step_ABP规约模式
一段时间没有在github 上浏览ABP项目,几天前看到ABP新增规约模式,开始了解并学习文档 记录一下 Introduction 介绍 Specification pattern is a pa ...
- hibernate NUMBER 精度
通过Hibernate映射实体时会根据数据库中NUMBER类型的精度,生成相应的POJO类中相对应的主键类型.经过亲测结果如下: NUMBER(1) POJO类中生成的是Boolean publicc ...
- linux搭建zabbix server
一.linux配置jdk 1.安装rpm包,安装完成位置:/usr/java/jdk1.8.0_152 2.配置环境变量/etc/profile: JAVA_HOME=/usr/java/jdk1.. ...
- 电话号自动识别之bug解决汇总
今天测试一个defect: “联系我们”页显示的电话号码,在不同浏览器显示效果不统一,有些浏览器自动识别电话号码并强制添加了样式. 网络搜索发现,其它website 也有类似问题,例如:http:// ...
- windows server 2012R2 故障转移集群配置
配置说明: AD:10.10.1.10/24 Node-2:10.10.1.20/24 Node-3:10.10.1.30/24 zhangsan-PC:10.10.1.50/24 VIP1:10 ...
- Appium+python自动化获取toast消息的方法
转载地址:https://www.cnblogs.com/shangren/p/8191879.html 1. 首先执行这个命令:npm install -g cnpm --registry=http ...
- web前端面试题题目
一.各种浏览器兼容的前缀:-o-(Opera),-ms-(IE): -moz-(火狐):-webkit-(chrome) 二.存在兼容性的css属性:placeholder,主要是因为各种浏览器pla ...
- MySQL主备
服务器基本环境: 两台centos6.4.iptables diabled .selinux disabled 两台的hosts解析 #yum install mysql -y //这个一定要装 ...