首页 > 其他分享 >链表实现

链表实现

时间:2022-10-23 19:22:24浏览次数:53  
标签:LinkList LNode 实现 next 链表 int 节点

1.伪代码算法
要插入一个节点,即将上一个节点指向的地址改为要插入的地址,将新的节点指向下一个节点
即 set next(i) to q
set *p to next(i)
set q to next(p)
要删除一个节点,即将(i-1)节点的地址改为(i)节点的地址

set next(i)to next(i-1)
2.C语言尝试实现
typedef struct Node
{
int i;
struct Node *next;

} LNode, *LinkList;
bool InitList(LinkList &L)
{
L = (LNode *)malloc(sizeof(LNode));
if (L == NULL)
{
return false;
}
L->next = NULL;
return true;
}
int GetListLength(LinkList &L)
{

int listlength = 0;
LNode *p = L->next;

while (p)
{
    listlength++;
    p = p->next;
}
return listlength;

}
void HeadInsertList(LinkList &L, int n)
{
int data;

while (n--)
{
    scanf("%d", &data);
    LNode *p = (LinkList)malloc(sizeof(LNode));
    p->i = data;
    p->next = L->next;
    L->next = p;
}

}
void TraverList(LinkList &L)
{
LNode *p = L->next;
while (p)
{
printf("%d ", p->i);
p = p->next;
}
}
Void Changelist(int i)
{
if (i != 0)
*i = *(i - 1);
}

include <stdio.h>

int main()
{
int n;
char c;
typedef struct Node
{
int i;
struct Node *next;

} LNode, *LinkList;
scanf("%d", &n);
printf("do you want to delete ?");
scanf("%c", &c);
if (c == 'n' || c == 'N')
    HeadInsertList(*LinkList, 1); //添加元素
else
    Changelist(i);             //删除元素
void TraverList(LinkList & L); //遍历链表以确定是否修改成功

}
注:代码中链表部分借鉴了https://blog.csdn.net/xinzhilinger/article/details/109011550中的内容

标签:LinkList,LNode,实现,next,链表,int,节点
From: https://www.cnblogs.com/7777xiaohu/p/16819215.html

相关文章

  • 实现mypwd
    1、要求:1学习pwd命令2研究pwd实现需要的系统调用(man-k;grep),写出伪代码3实现mypwd4测试mypwd提交过程博客的链接2、过程:(1)学习pwd命令1:查看pwd命令的帮助信......
  • 安卓中实现异步任务(5)——使用IntentService实现
    安卓中实现异步任务(5)——使用IntentService实现问题背景上篇文章大致介绍了几种安卓汇总实现异步任务的方法,讲得比较简要,有朋友问到具体的实现方式,现在开始分列几篇文章详......
  • CSS实现渐变色边框
    三种方式:1.用border-image来实现:.box{width:200px;height:200px;border:10pxsolid#ddd;border-image:......
  • 实现AOP的三种方式
    实现AOP的三种方式AOP是什么Spring的一种横切技术,在开发时可能需要对原来的业务进行增强或者加日志,这个时候就可以使用AOP来对其进行操作。java实现动态代理的两种方式......
  • postgresql中work_mem的实现及临时文件的实现
    在postgresql中,work_mem不足(包括物化、hashjoin、某些table函数如generate_series)时写临时文件的实现在src/backend/utils/sort/tuplestore.c(它本质上是tuplesort.c(l......
  • ① 定义一个大小为10 的整形数组a; ② 从键盘输入10 个整数,放置到数组a 中; ③ 输出数组
    publicstaticvoidmain(String[]args){ Scannerinput=newScanner(System.in); int[]a=newint[10];//定义一个数组 //给数组的10个元素赋值 for(inti=0;i......
  • Nginx+Tomcat实现负载均衡、动静分离(脚本方法)
    一、Nginx负载均衡实现原理1、Nginx实现负载均衡是通过反向代理实现反向代理(ReverseProxy)是指以代理服务器(例:Nginx)来接受internet上的连接请求,然后将请求转发给内部......
  • 数据结构【C语言版】二叉树的结构和遍历的实现
    数据结构【C语言版】二叉树的结构和遍历的实现1.二叉树的存储结构二叉树一般分为两种存储结构,一种是顺序结构,一种是链表结构。顺序结构顺序结构存储就是使用数组来......
  • swith实现成绩显示
    importjava.util.Scanner;publicclassEext{ publicstaticvoidmain(String[]args){ //对学生成绩大于60分的,输出合格,低于60分的,输出不合格,输入成绩不能大于100提......
  • 深度优先搜索求最短路径DFS C#实现
    搜索效果 C#项目文件可以点击下载   搜索最短路径的代码:///<summary>///DFS求最短路径///</summary>///<paramname="cX">当前点X坐标</param>///<par......