顺序表之单链表(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版)学习笔记(三)——线性表之单链表
单链表的优点: 长度不固定,可以任意增删. 单链表的缺点: 存储密度小,因为每个数据元素,都需要额外存储一个指向下一元素的指针(双链表则需要两个指针). 要访问特定元素,只能从链表头开始,遍历到该元素 ...
随机推荐
- mysql,左连接 ,查询右表为null的写法,删除,带join条件的写法
select * from sale_guest sg left join sale_bill sbon sg.bill_id=sb.id where sg.gmt_create>'2023-1 ...
- winform 绘图控件 chart 实时曲线图
官方教程:http:////files.cnblogs.com/files/HelloQLQ/Winform图表.rar 更多参考:https://blog.csdn.net/boxuming/art ...
- CSS——阴影
<!DOCTYPE html> <html> <head> <style> p.one { text-shadow: 3px 5px 5px #FF00 ...
- k8s——statefulset
statefulset基础模版 [root@master statefulset]# cat web.yaml --- apiVersion: v1 kind: Service metadata: n ...
- vscode设置护眼色
参考链接:https://blog.csdn.net/qq_39233554/article/details/105639331?depth_1- 打开VS code选择'文件'→'首选项'→'设置' ...
- Python实现字符串模糊匹配
在一个字符串中,有时需对其中某些内容进行模糊匹配以实现条件的判定,如在"你好,hello,world"中判断是否含有"llo".Python中通过re.se ...
- c#使用webView2 访问本地静态html资源跨域Cors问题 (附带代理服务helper帮助类)
背景 在浏览器中访问本地静态资源html网页时,可能会遇到跨域问题如图. 是因为浏览器默认启用了同源策略,即只允许加载与当前网页具有相同源(协议.域名和端口)的内容. WebView2默认情况下启用了 ...
- 常见的Linux命令
在 cmd 命令行 或者终端中 可以运行 node.js 命令 也可以 运行 SQL语句 还可以运行 Linux 命令 Li ...
- 使用 JavaScript 脚本来进行复杂的查询改写
有这么一个需求: 网关里怎样对跨集群搜索进行支持的呢?我想实现: 输入的搜索请求是 lp:9200/index1/_search 这个索引在 3 个集群上,需要跨集群检索,也就是网关能否改成 lp:9 ...
- npm ERR! code EPERM npm ERR! syscall open npm ERR! path C:\Program Files\nodejs\node_cache\_cacache\
报错信息 让人摸不着头脑的报错 解决方式 简单粗暴 直接删文件 方法1:需要删除npmrc文件. 强调:不是nodejs安装目录npm模块下的那个npmrc文件 而是在C:\Users{账户}\下的. ...