当前位置: 首页 > news >正文

【链表操作】前驱和后继

题目描述

设计函数void prevnext(struct node * head, char x);,在以head为头指针的非空链表中,找到数据域值为x的结点,输出该结点的前一个结点和后一个结点的数据域值,如果该结点没有前驱结点(即该结点为第1个结点),则以-1代替,如果该结点没有后继结点(即该结点为尾结点),也以-1代替,如果该结点既是第1个结点也是尾结点(即只有1个结点的链表),则输出2个-1。如果找不到这样的结点,则输出"no node"。

输入

第一行为若干个互不相同的整数,中间用空格分隔,末尾一个整数为-1,以-1前的每个整数为数据域的值创建多个结点,并将这些结点,利用尾插法链接成链表。
第2行为1个整数,表示要查找的结点的数据域的值。

输出

查找到的结点的前驱和后继的数据域值。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>struct node {int data;struct node *next;
};void prevnext(struct node *head, int x);
void destroy(struct node* head);
struct node* creatlink();
void traverse(struct node* head);int main() {int c;struct node *head;head = creatlink();scanf("%d", &c);prevnext(head, c);destroy(head);return 0;
}void prevnext(struct node *head, int x) {struct node *prev, *p;p = head;prev = NULL;while (p!= NULL) {if (p->data == x) {if (prev == NULL) {printf("-1 ");} else {printf("%d ", prev->data);}if (p->next == NULL) {printf("-1");} else {printf("%d", p->next->data);}return;}prev = p;p = p->next;}printf("no node");
}struct node* creatlink() {struct node* head = NULL;int data;struct node *p, *q;while (1) {scanf("%d", &data);if (data == -1) break;p = (struct node *)malloc(sizeof(struct node));p->next = NULL;p->data = data;q = head;if (q == NULL) {head = p;} else {while (q->next!= NULL) {q = q->next;}q->next = p;}}return head;
}void traverse(struct node* head) {struct node *p = head;while (p!= NULL) {printf("%d ", p->data);p = p->next;}
}//销毁链表
void destroy(struct node* head) {struct node *p;while (head!= NULL) {p = head;head = head->next;free(p);}
}


http://www.mrgr.cn/news/34543.html

相关文章:

  • python printf中文乱码
  • scala的练习题
  • 【go从零单排】Random Numbers、Number Parsing
  • EN 1335-2办公家具.办公椅.第2部分:安全要求
  • (一)- DRM架构
  • C++初阶——list
  • 个人防护装备检测系统源码分享
  • 全栈开发(一):springBoot3+mysql初始化
  • LPDDR4芯片学习(一)——基础知识与引脚定义
  • 初始docker以及docker的基本使用!!!
  • 苍穹外卖上半部分总结
  • 【灭鼠先锋 / B】
  • 《CUDA编程》1.GPU硬件与CUDA环境搭建
  • 某恩加密数据爬虫逆向分析
  • P4630 [APIO2018] 铁人两项(圆方树模版)
  • 基于SpringBoot+Vue+MySQL的旅游推荐管理系统
  • 24. Revit API: 几何对象(五)- (Sur)Face
  • QT中添加资源文件
  • 隐匿发案:David律所代理艺术家Ina Tomecek的两张青蛙版权画维权
  • 在 macOS 上安装 FFmpeg 的详细指南
  • 有关在.Net Core中以TEXT类型将Json格式字段存到数据库的学习
  • 通义千问模型升级:2.5正式上线的使用体验
  • 设计模式介绍
  • 动态时间【JavaScript】
  • 通过spring-boot创建web项目
  • PostgreSQL的学习心得和知识总结(一百五十一)|[performance] PostgreSQL列对齐