日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

双向循环链表:字母表实现前后移动

發布時間:2025/3/15 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 双向循环链表:字母表实现前后移动 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題描述


要求實現用戶輸入一個數使得26個字母的排列發生變化,例如用戶輸入3,使得結果為:DEFHIJKLMNOPQRSTUVWXYZABC,

同時需要支持負數,使得輸入-3時,結果為:XYZABCDEFGHIJKLMNOPQRSTUVW。實現位置的前后都能移動且數據都是連著的,當然數據結構選擇雙向循環鏈表啦


問題拓展


問題實際上是有關凱撒密碼,凱撒密碼的思想是通過把字母移動一定的位數來實現加密和解密。

明文中的所有字母都在字母表上向后(或向前)按照一個固定數目進行偏移后被替換成密文。


代碼展示


#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #define OK 1 #define ERROR 0typedef int Status; typedef char EleType; //雙向循環鏈表 結點數據結構 typedef struct DulNode {EleType data;//數據域struct DulNode* next;//后繼結點指針域struct DulNode* prior;//前驅結點指針域 }DulNode,*DulLinkList; //取了別名 DulNode* 相當于DulLInkList//創建雙向循環鏈表 Status CreatDulLink(DulLinkList* list) {if (list == NULL){return ERROR;}DulNode* head = (DulNode*)malloc(sizeof(DulNode));//創建頭結點if (head == NULL){return ERROR;}DulNode* p = head;//p 移動指針,起初指向頭結點p->next = p->prior = NULL;for (size_t i = 0; i < 26; i++){DulNode* node = (DulNode*)malloc(sizeof(DulNode));//創建結點node->data = 'A' + i;//下面3步將創建的node結點放到雙向循環鏈表中node->next = p->next;//直接賦值NULL也可以node->prior = p;p->next = node;//p 始終指向鏈表最后一個結點p = node;}//下2步 將尾結點和第一個結點關聯形成雙向循環鏈表,越過頭結點。p->next = head->next;head->next->prior = p;//循環鏈表指向第一個元素*list = p->next;//釋放頭結點free(head);return OK; } //將循環鏈表指向第num個位置 Status Caesar(DulLinkList* list,int num) {DulLinkList tmp = *list;//雙向循環鏈表指針往后移if (num > 0){int i = 0;//num = 1 往后移動1位, temp = temp -> nextwhile (i < num){tmp = tmp->next;i++;}*list = tmp;}//雙向循環鏈表指針往前移if (num < 0){int i = 0;//num = -1 往前移動1位,temp = temp->priorwhile (i < num*-1){tmp = tmp->prior;i++;}*list = tmp;}return OK; } //銷毀鏈表釋放內存 Status DestroyDulLink(DulLinkList list) {if (list == NULL){return ERROR;}DulNode* node = list;//node為移動指針,node 開始指向循環鏈表第一個結點//循環鏈表遍歷完判斷,尾結點的指針域指向第一個結點while (node->next != list){DulNode* temp = node;node = node->next;free(temp);}//釋放最后一個結點free(node);return OK; } //循環鏈表展示 Status ShowCaesar(DulLinkList list) {if (list == NULL){return ERROR;}DulNode* node = list;//node為移動指針,node 開始指向循環鏈表的開始的一個結點//循環鏈表遍歷完判斷,尾結點的next指針域指向開始第一個結點while (node->next != list){printf("%c",node->data);node = node->next;}printf("\n");return OK; }int main(int argc, char *argv[]) {DulLinkList list = NULL;CreatDulLink(&list);DulLinkList origal = list;int num = 0;while (1){list = origal;printf("請輸入位移數字(0退出):");scanf("%d", &num);if (!num){break;}Caesar(&list, num);ShowCaesar(list);}DestroyDulLink(list);return 0; }

運行結果






新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!

總結

以上是生活随笔為你收集整理的双向循环链表:字母表实现前后移动的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 丰满熟女一区二区三区 | 涩涩精品| 91伦理在线 | 成人免费一区二区三区在线观看 | youjizzxxxxx| 日韩在线不卡视频 | 久久人人超碰 | 在线观看黄色片网站 | 久久精品国产亚洲AV黑人 | 国产91精品看黄网站在线观看 | 丁香婷婷亚洲 | 欧美日韩一区二区在线播放 | 欧美va天堂| 制服丝袜手机在线 | 狠狠爱综合| 久久艹av| 日本一级免费视频 | 日本人妖japanesexxx | av电影网站在线观看 | 另类欧美尿交 | 伊人网免费视频 | 热久久久| 久久久免费网站 | 国产suv精品一区二区68 | 亚洲男女在线 | 欧美午夜一区 | 久久成人久久 | 日韩av手机在线观看 | 精品一区二区三区四区五区 | 黄色片在线看 | 性色视频在线 | 1024在线视频 | 黄色片子一级 | 亚洲精品高清无码视频 | 性欧美精品 | 一本大道久久久久精品嫩草 | 人禽l交视频在线播放 视频 | 毛片网站在线 | 色吧av色av | 二区视频在线 | 日韩精品网站 | 激情欧美一区二区三区 | 国产精品不卡视频 | 岛国免费av | 亚洲免费观看高清在线观看 | 免费av观看网站 | 91免费网址| 丰满护士巨好爽好大乳 | 中文国产字幕 | 天堂а√在线中文在线鲁大师 | 日本在线第一页 | 国产大学生av | 少妇69xx| 成人tv | 99爱这里只有精品 | 黄色片视频免费观看 | 婷婷二区 | 免费无遮挡无码永久在线观看视频 | 久久久久久久久综合 | 大桥未久av在线 | 东京热一区二区三区四区 | 重口变态虐黄网站 | 91精品人妻互换一区二区 | 成人乱码一区二区三区 | 性久久| 国产精品制服诱惑 | 国产中文一区二区 | 69pao| 贵族女沦为官妓h呻吟 | 五月天综合社区 | 97se在线视频 | 亚洲国产精一区二区三区性色 | 在线国产欧美 | 成人av图片| 天天干天天干天天干 | 国产极品美女高潮无套嗷嗷叫酒店 | 精品人妻一区二区免费视频 | 国产福利资源在线 | 日韩首页 | www.欧美一区二区三区 | 中文字幕四区 | 不用播放器av | 亚洲图片欧美激情 | 综合色网站 | 亚洲一区二区色 | 在线v | 久久人人爽天天玩人人妻精品 | 日本少妇高潮喷水xxxxxxx | 在线看污片 | 成年人看的羞羞网站 | 国产成人三级一区二区在线观看一 | 色婷婷av一区二区三 | 女人的天堂av | 精品国产大片大片大片 | 伊伊总综合网 | 影音先锋亚洲一区 | 欧美一a | 最新一区二区三区 | 国产精品久久久久久无人区 |