顺序表之单链表(C实现)
// Code file created by C Code Develop
#include "ccd.h"
#include "stdio.h"
#include "stdlib.h"
#define OK 1
#define ERROR 0
//思考: 如果用cpp即C++编码会不会能够编译成功
typedef struct LNode{
int data;
struct LNode *next;
}LNode; // *LinkList;
typedef LNode* LinkList;
int main(int argc, char **argv)
{
//1、typedef int size_t;
// 数据类型重命名
typedef int* zhengzhengshu;
// int x =1;
// <==>
size_t x = 1;
// int *p; // <==>
// zhengzhengshu p;
LinkList L;
int a = InitList_head(L);
if(a = OK) printf("创建含有头节点的单链表成功");
LinkList LL;
a = InitList_head(LL);
if(a = OK) printf("创建含有头节点的单链表成功");
return 0;
}
//初始化一个没有头结点的单链表
int InitList_NoLNode(LNode *L) {
L == NULL;
return OK;
}
// 初始化单链表,带头节点
int InitList_head(LNode *L) {
L = (LNode *) malloc(sizeof(LNode)); // 为头节点分配空间
if (L == NULL)
return false; //内存不足分配失败
L -> next = NULL; // 头节点之后无节点
return OK;
}
//按位序插入(不带头节点)
int ListInsert(Linklist *L,int i,int e){
if(i < 1) return ERROR;
if(i = 1) {
LNode *s = (LNode *) malloc(sizeof(LNode));
s -> data = e;
s -> next = L;
L = s; //头指针指向新结点
return OK;
}
LNode * p; // 指针p指向当前扫描到的结点
int j = 1; // 当前p指向的是第几个结点
p = L; // p指向第1个结点 (不是头节点)
while(p!= NULL && j < i - 1) {
// 循环找到第i-1个结点
p=p->next;
j++;
}
// i值不合法
if(p == NULL)
return ERROR;
LNOde *s = (LNode *) malloc(sizeof(LNode));
s -> data = e;
s -> next = p -> next;
p -> next = s;
return OK;
}
顺序表之单链表(C实现)的更多相关文章
- 【线性表基础】顺序表和单链表的插入、删除等基本操作【Java版】
本文表述了线性表及其基本操作的代码[Java实现] 参考书籍 :<数据结构 --Java语言描述>/刘小晶 ,杜选主编 线性表需要的基本功能有:动态地增长或收缩:对线性表的任何数据元素进行 ...
- 线性表源码分享(c++),包含顺序表、单链表、循环链表、双向链表
---恢复内容开始--- 我是一个c++和数据结构的初学者,本文主要是把清华大学出版社的数据结构(用面向对象方法与c++语言描述)(第2版)这本书中第二章线性表的源码抄下来,在学习的过程中有助于加深印 ...
- Java: 实现顺序表和单链表的快速排序
快速排序 快速排序原理 快速排序(Quick Sort)的基本思想是,通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可对这两部分记录继续进行排序,以达到 ...
- [数据结构 - 第3章] 线性表之单链表(C++实现)
一.类定义 单链表类的定义如下: #ifndef SIGNALLIST_H #define SIGNALLIST_H typedef int ElemType; /* "ElemType类型 ...
- 线性表之单链表C++实现
线性表之单链表 一.头文件:LinkedList.h //单链表是用一组任意的存储单元存放线性表的元素,这组单元可以是连续的也可以是不连续的,甚至可以是零散分布在内存中的任意位置. //单链表头文件 ...
- 续上文----线性表之单链表(C实现)
本文绪上文线性表之顺序表(C实现) 本文将继续使用单链表实现线性表的另外一种存储结构.这种使用链表实现的存储结构在内存中是不连续的. C实现代码如下: #include<stdio.h> ...
- 线性表 (单链表、循环链表-python实现)
一.线性表 线性表的定义: 线性表是具有相同数据类型的有限数据的序列. 线性表的特点: 出了第一个元素外,每个元素有且仅有一个直接前驱,除最后一个元素外有且只有一个后继. 线性表是一种逻辑结构,表示元 ...
- 【C#】【数据结构】002-线性表:单链表
C#数据结构:单链表 1.自定义单链表结构: 单链节点类 using System.Collections; using System.Collections.Generic; using Unity ...
- Java数据结构-线性表之单链表LinkedList
线性表的链式存储结构,也称之为链式表,链表:链表的存储单元能够连续也能够不连续. 链表中的节点包括数据域和指针域.数据域为存储数据元素信息的域,指针域为存储直接后继位置(一般称为指针)的域. 注意一个 ...
- 数据结构(java版)学习笔记(三)——线性表之单链表
单链表的优点: 长度不固定,可以任意增删. 单链表的缺点: 存储密度小,因为每个数据元素,都需要额外存储一个指向下一元素的指针(双链表则需要两个指针). 要访问特定元素,只能从链表头开始,遍历到该元素 ...
随机推荐
- C# Datagridview combox列 初始化颜色
DataGridView 初始化完成后,在combox里显示颜色,如这样: DataGridView 注册 cellPainting事件: private void m_dataGridView_Ce ...
- insert into select [SQL]
insert into `d_mx_think`.`su_article` (id,catid,title,url) select id,catid,title,url from d_mx_phpcm ...
- C语言常用数学函数
目录 C语言常用数学函数(头文件#include "math.h") abs()函数 labs()函数 fabs()函数 floor()函数 floorf() floorl() c ...
- kettle从入门到精通 第二十九课 job 循环 检验字段的值
1.平常我们在用kettle设计job的时候,会用到循环来处理一些业务逻辑,比如循环检测某个表中的数据条数等.这个时候就会用到一个特别重要的步骤:检验字段的值. 下图是一个的通过初始化DNOE变量为f ...
- 设置双击ps1脚本直接用Powershell打开
设置双击ps1脚本直接用Powershell打开. 默认.ps1 文件双击是不能打开的,只能右键运行. 解决方法: 1.按windows+R打开运行,输入regedit,打开注册表 2.找到HKEY_ ...
- 图片预加载需要token认证的地址处理
1.添加函数修改img的属性: /** * * @param {*} idName 传入的id,获取改img的dom,添加相应的数学 */ export const proxyImg = (idNam ...
- redshift DATE_TRUNC函数 查询日期上个月的26号到当前月的26号
redshift DATE_TRUNC函数 查询日期上个月的26号到当前月的26号 # redshift脚本 # 2023-08-01 00:00:00.000 select DATE_TRUNC(' ...
- Java8 - sum求和,将 List 集合转为 Map,key去重(groupingBy),sorted排序
Java8 - sum求和,将 List 集合转为 Map,key去重(groupingBy),sorted排序 package com.example.core.mydemo.java8; publ ...
- 支付宝APP支付 订单已付款成功,请勿重复提交 和 微信H5支付 INVALID_REQUEST 201 商户订单号重复
支付宝APP支付 返回请求给前端SDK 提示报错"订单已付款成功,请勿重复提交" 产生原因:存在商家订单号已经支付成功,重复再次请求的情况.每一笔的支付项目商家订单号是唯一的,如果 ...
- Lucene demo演示搜索查询歌手,歌名,歌词
1.导入pom jar文件 <dependency> <groupId>org.apache.lucene</groupId> <artifactId> ...