双链表实例 分手后的思念是犯贱 2022-08-08 06:11 246阅读 0赞 我们实现一个功能,26个字母,我们输入一个正数就从前面数到这个正数的位置按顺序开始输出,一共输出26个字母,比如输入3,那么输出: D E F G H I J K L M N O P Q R S T U V W X Y Z A B C 如果输入一个负数我们从后面开始数,数到这个位置我们又按照顺序开始出书,比如输入-3, X Y Z A B C D E F G H I J K L M N O P Q R S T U V W 像以上功能我们可以通过双向链表简单实现: #include "StdAfx.h" #include <stdio.h> #include <stdlib.h> #define OK 1 #define ERROR 0 typedef char ElemType;//定义一个元素类型 typedef int Status;//定义一个状态类型 typedef struct DualNode{ ElemType data; struct DualNode* prior; struct DualNode* next; }DualNode,*DuLinkList; Status InitList(DuLinkList* L){ //初始化链表 DuLinkList p,q; int i; *L=(DuLinkList)malloc(sizeof(DualNode)); if(!*L) return ERROR; (*L)->prior=(*L)->next=NULL; p=*L; for(i=0;i<26;i++){ q=(DuLinkList)malloc(sizeof(DualNode));//分配一个新的结点 if(!q) return ERROR; q->data='A'+i; q->next=p->next;//q->next=null;这样写程序不灵活 q->prior=p; p->next=q; p=q; } //构造一个环 p->next=(*L)->next;//尾结点的下一个结点指向第一个结点 (*L)->next->prior=p;//头结点的前个结点指向尾结点 return OK; } void Caesar(DuLinkList*L,int i){ if(i>0){ *L=(*L)->next; while(i--){ *L=(*L)->next; } }else if(i<0){ *L=(*L)->next; while(i++){ *L=(*L)->prior; } } } int main(){ DuLinkList L; printf("请输入整数:\n"); int n=0; scanf("%d",&n); printf("\n"); InitList(&L); Caesar(&L,n); for(int i=0;i<26;i++){ printf("%c ",L->data);//打印出来 L=(L)->next; } return 0; } ![20150506214723667][] [20150506214723667]: /images/20220805/a6df221d8bda4584be4f2f7a5f473c73.png
相关 链表(二) 双链表操作详解 文章目录 四、双向带头循环链表的实现 List.h List.c 创建返回链表的头结点 双向链表 淩亂°似流年/ 2024年03月23日 17:43/ 0 赞/ 109 阅读
相关 双链表 1、建立双链表 /头插法/ void CreateDLink(DLinkNode& L, ElemType a[], int n) { DL 矫情吗;*/ 2023年08月17日 15:15/ 0 赞/ 170 阅读
相关 双链表算法 双链表最大的优势就是可以双向遍历 package main import "fmt" type Node struct { た 入场券/ 2023年07月12日 14:42/ 0 赞/ 39 阅读
相关 双链表改造 要求:设双链表表示的线性表L=(a1,a2…an),试写一段时间复杂度为O(n)的算法,将L改造为L=(a1,a3,…an,…a4,a2)。 //第7题 分手后的思念是犯贱/ 2022年12月31日 01:12/ 0 赞/ 196 阅读
相关 双链表实例 我们实现一个功能,26个字母,我们输入一个正数就从前面数到这个正数的位置按顺序开始输出,一共输出26个字母,比如输入3,那么输出: D E F G H I J K L M N 分手后的思念是犯贱/ 2022年08月08日 06:11/ 0 赞/ 247 阅读
相关 双端链表 双端链表与传统的链表很相似,在基本链表的基础上新增一个特性:对最后一个结点的引用。如下图所示: ![这里写图片描述][20160904132653300] 与之前说到 ╰半橙微兮°/ 2022年07月18日 01:25/ 0 赞/ 255 阅读
相关 双链表 双向链表 双向链表中,每个结点都有两个指针域,一个指向其后继结点,另一个指针指向其前驱结点,如图1.1(a)所示,因此,可以从某个结点开始朝两个方向遍历整个链表。 客官°小女子只卖身不卖艺/ 2022年07月16日 04:59/ 0 赞/ 315 阅读
相关 双链表实现 以前写的不带头的单链表实现,当时也啥也没学,好多东西不知道,加上一心想压缩代码,减少情况,所以写得不太好。 请教了老师,首先是命名问题和代码紧凑性等的改进。还有可读性方面的改 柔情只为你懂/ 2022年05月10日 20:50/ 0 赞/ 300 阅读
相关 双链表例题 1.在带头结点的双链表中的第一个值为X的节点之前插入元素值为y的节点(假设双链表中不存在两个至于相同的节点)。算法:先从第一个有数据的节点开始遍历双链表,找到元素为x的节点之后 ﹏ヽ暗。殇╰゛Y/ 2022年03月18日 05:11/ 0 赞/ 243 阅读
相关 Java双链表 一、概述 ![1007094-20190729154426250-1175775918.png][] 二、英雄类 1 class HeroN 小灰灰/ 2021年11月16日 09:30/ 0 赞/ 417 阅读
还没有评论,来说两句吧...