c语言双链表从右向左遍历,有没有大佬在的,我这双向链表怎么没办法遍历
有没有大佬在的,我这双向链表怎么没办法遍历
#include
#include
#include
#pragma warning(disable:4996)
#define num 30
typedef struct king
{
char mv_name[num];//电影名
int number;//电影序号
struct king* head;//保存上一个节点的地址
struct king* next;//保存下一个节点的地址
}new;
char* _scanf(char* fp, int a);
void _printf(new* fp1, new* fp2);
int main()
{
char input[num];
new* head = NULL; new* p1 = NULL; new* p2 = NULL;//head头指针 p1=节点分配内存 p3=链接作用
puts("stdin mv the name");
while (_scanf(input, num) != NULL && input[0] != '\0')
{
p1 = (new*)malloc(sizeof(new));
if (!p1) break;
if (head == NULL)
{
head = p1;
head->head = NULL;
}
else
{
p2->next = p1;//第一个节点的next保存下一个节点的地址
p1->head = p2;//下一个节点保存上一个节点的地址
}
p1->next = NULL;
strcpy(p1->mv_name, input);
puts("stdin 0-9");
scanf_s("%d", &p1->number);
while (getchar() != '\n') continue;
puts("stdin mv the name");
p2 = p1;
}
p1 = head;
_printf(p1,p2);
return 0;
}
void _printf(new* fp1, new* fp2
{
while(fp1->null)
{
printf("%s %d",fp1->mv_name,fp1->nuber);
fp1=fp1->next;
}
while(fp2->null)
{
printf("%s %d",fp2->mv_name,fp2->nuber);
fp2=fp2->head;
}
}
char* _scanf(char* fp, int a)
{
char* fp1 = NULL;
char* fp2 = NULL;
fp1 = fgets(fp, a, stdin);
if (fp1)
{
fp2 = strchr(fp, '\n');
if (fp2)
*fp2 = '\0';
else
while (getchar() != '\n')
continue;
}
return fp1;
}
思路应该没错吧
c语言双链表从右向左遍历,有没有大佬在的,我这双向链表怎么没办法遍历相关推荐
- c语言函数参数从右往左,C语言函数入参压栈顺序为什么是从右向左?
看到有人提问到,在处理printf/cout时,压栈顺序是什么样的?大家都知道是从右往左,也就是说从右往左的计算,但是,这里的计算不等于输出. a++和++a的压栈的区别:在计算时,遇到a++会记录此 ...
- c语言运算符优先级 从右到左,c语言运算符优先级,结合性(左/右结合详解)
重新翻了遍c语言,觉得对c语言运算符结合性有必要提一下,毕竟去年我自己刚学c语言的时候,就没搞明白结合性的问题. 什么是左结合?什么是右结合?它们是干嘛用的?它们是什么时候用的? 本文将围绕这几个问题 ...
- c语言双链表是什么意思,双链表的表示和实现(C语言)
#include#includetypedef int ElemType; typedef struct node{ ElemType data; struct node *next; struct ...
- c语言双链表排序交换节点_图解:单链表翻转的三种方式!
当我们在聊到链表反转的时候,一定说的都是单链表,双链表本身就具有前驱指针 Prev 和后续指针 next,无需进行翻转. 单链表反转,反转后的效果如下: 看起来很简单,只需要将单链表所有结点的 nex ...
- C语言双链表遍历,插入,删除
#include<stdio.h> #include<stdlib.h> #include <string.h> #define bzero(a, b) memse ...
- html 从左往右消失,从左到右语言写成从右到左html
好吧,我正在浏览一些与RTL相关的博客和示例,并提供了下面的工作示例. 在这段代码转换选项是存在的,你可以尝试两种LTR和RTL上点击这个按钮 - 下面是它的工作代码. // Jquery, BS3 ...
- 数据结构与算法—一文多图搞懂双链表
目录 前言 双链表介绍 与单链表区别 结构的设计 具体方法的解析 初始化 增加 空表插入: 头插入: 尾插入: 编号插入: 删除 单节点删除: 头删除: 尾删除: 普通删除: 代码与测试 总结与感悟 ...
- android 波斯文排序,Android 4.2原生支持从右到左的文字排列格式
Android 4.1(Jelly Bean) 在 TextView 和 EditText 元素里对"双向文字顺序"提供了有限的功能支持,允许应用程序在编辑和显示字符的时候,能够同 ...
- C语言 单双链表实现
文章目录 一.为什么需要链表? 二.单链表的实现 1.使用堆内存来创建一个链表节点的步骤 2.插入节点 2.1.访问链表中各个节点的数据 2.2. 将创建节点的代码封装成一个函数 2.3封装函数插入新 ...
最新文章
- 医生们说,AI不会取代我们!
- 【Python-ML】SKlearn库特征抽取-KPCA
- tensorflow kears GPU CUDA Cudnn 各种版本问题
- PowerPC VxWorks BSP分析(1)--PowerPC体系结构
- 蓝牙驱动卸载后自动安装_Intel 蓝牙驱动安装教程
- 【转】细说.NET中的多线程 (三 使用Task)
- 第 5-4 课:ThreadLocal 详解 + 面试题
- 山东大学2020计算机考研学硕,2020山东大学考研学硕复试分数线
- 大学四年只学java_大学四年废了怎么办,不如来学java
- html table 美化,html如何用css美化表格
- 美团旅行销售绩效系统研发实践
- 关于Oblog 2.52 help.asp漏洞的修补问题
- Ubuntu linux ls 看到目录文件夹绿色高亮问题
- php 多核cpu,paip.提升性能--多核cpu中的java/.net/php/c++编程
- 阿里iDST NLP负责人司罗:NLP技术怎样一路走到阿里云
- acmev2怎么用_lua-resty-acme: ACMEv2 客户端和 Let's Encrypt 证书的自动化管理
- va_start 用法
- java图片加气泡文字,动态图片加气泡文字 微信动态图片加文字教程
- 浅谈信息无障碍人才的培养
- POJ 3107 Godfather(树形DP(找重心))
热门文章
- 8月见!iQOO Pro 5G版即将亮相:骁龙855Plus加持
- 拼多多董事会变更:董事6人变5人 张震不再出任
- 为什么现在越来越多的人不愿换新机?最后一个原因扎心了
- webpack打包教程
- 3.请求安全-- 结合使用的安全优势总结
- c# 与 c++ 界面同框终极技巧
- asio定时器深度探析
- Linux下coredump调试1:使用
- 【clickhouse】flink jdbc 方式写入 clickhouse 报错 request to {}->http://xxx:8123: Broken pipe
- 【kafka】kafka topic某些分区 副本落后leader太多