1. 字符串逆序,abcde->edcba

2. 单词逆序,how are you->you are how

3. 单链表逆序,[1,2,3,4,5]->[5,4,3,2,1]

a = 'abcde'
print '原始字符串:', a
print '翻转字符串:',a[::-1]def reverse(arr, left, right):""" 字符串反转定义两个索引分别指向首位,交换2个索引的位置,同时把索引的值向中间移动,直到两个索引相遇为止"""while(left < right):arr[left],arr[right] = arr[right],arr[left]left += 1right -= 1return ''.join(arr)
print '翻转字符串:', reverse(list(a), 0, len(a)-1)
def str_reverse():""" 把一个句子中的单词进行反转"how are you"-->"you are how"思路: 1. 先对字符串进行反转->"uoy era woh"2. 遍历字符串,遇到空格,对单个单词进行反转"""word_str = 'how are you'lists = list(word_str)word_str_r = reverse(lists, 0, len(word_str)-1)print 'lists: ', listsi, begin = 0, 0while i < len(lists):if lists[i] == ' ':print 'begin: ', begin, 'i: ',i, 'tmp: ', listsreverse(lists, begin, i-1)begin = i + 1 i += 1reverse(lists, begin, len(lists)-1)return ''.join(lists)print str_reverse()
class LNode():#__new__ 负责对象的创建而 __init__ 负责对象的初始化def __new__(self, data):self.data = dataself.next = Nonedef list_reverse(phead):"""链表反转...h-->i-->j-->k-->...  <图1>...h<--i   j-->...      <图2>假如h节点之前的指针已经调整完毕,下面将i的next指向h(图2)为了避免i与j断开,在调整节点i的next之前,先把节点j保存下来在调整节点i的next指针时,i指向h,所以还需要知道i的前一个节点h此处定义3个指针,分别是当前遍历到的节点pnode,它的前一个节点pprev及后一个节点pnext"""preverse_head = Nonepnode = pheadpprev = Nonewhile(pnode != None):pnext = pnode.nextif pnext == None:preverse_head = pnodepnode.next = pprevpprev = pnodepnode = pnextreturn preverse_heada = [1,2,3,4,5]
def list_create(a):"""构造单链表"""head = LNode()head.next = Nonecur = headfor i in a:tmp = LNode()tmp.data = itmp.next = Nonecur.next = tmpcur = tmpreturn headdef test():head = list_create(a)print '排序前:'cur = head.nextwhile cur != None:print cur.datacur = cur.nextpreverse_head = list_reverse(head.next)print '排序后:'cur = preverse_headwhile cur != None:print cur.datacur = cur.nexttest()

运行结果:

关于逆序的一些基本操作相关推荐

  1. 学习笔记——C语言实现单链表的基本操作:创建、输出、插入结点、删除结点、逆序链表

    *************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com ****** ...

  2. 复习 |链表基本操作(逆序)

    1.原地逆序 无头节点链表 /* struct ListNode {int val;struct ListNode *next;ListNode(int x) :val(x), next(NULL) ...

  3. 单链表逆序生成及逆置的完整实现

    单链表逆序生成及逆置的完整实现 本例中单链表数据类型定义成int型,可更改 头文件1(1.h) 宏定义及Status类型定义 头文件2(2.h) 单链表基本操作函数与逆置函数 include" ...

  4. 链表的各种操作实现 链表逆序 链表排序 有序链表归并 链表存在环的判定

    链表的各种操作实现 链表逆序 链表排序 有序链表归并 链表存在环的判定 链表基本操作实现 c语言版本, 该程序在visual c++ 6.0上调试通过! 本人写该程序完全是为学习交流之用,还望大家多多 ...

  5. 输出整数的位数、按位输出(两种)以及逆序输出

    输出整数的位数.按位输出(两种)以及逆序输出 本次数字的基本操作及解释 ①求数字所占位数 ②数字逐位从高位到低位输出 ③数字逐位从低位到高位输出 ④数字逆序输出 数字的按位输出操作,逆序操作,输出位数 ...

  6. c++ 向量的值逆序输出_C++中vector的常用方法

    前言 在C++中,vector是一个商业转载请联系作者获得授权,非商业转载请注明出处.十分有用的容器.它能像容器一样存放各种类型的对象,简单来说,vector是一个能够存放任意类型的动态数组,能够增加 ...

  7. 链表详解(单链表、双向链表、链表逆序)

    目录 线性表 顺序存储结构 链式存储结构 单链表 单链表定义 单链表基本操作(仅供参考) 实例 循环单链表的状态图 双向链表 双向链表定义 双向链表特点 双向链表基本操作(仅供参考) 实例 双向链表的 ...

  8. python将字符串逆序_为什么说Python是一门伟大的入门语言?(附免费教程)

    Python 是一门伟大的入门语言.作为一门伟大的编程语言,一定要具备一些特征,其中有五项特征是非常重要的: 非常棒的首次体验:就像书的开始,首先一定要能够"沉迷",学习新知识一定 ...

  9. python元组和列表逆序_Python元组和列表你真的用对了吗?

    对于Python来说,列表可谓是用到的非常多的数据结构之一了,但是Python还有另外一个数据结构叫做元组,直观表现来说,元组就像是不可变的列表,那么问题来了,元组和列表的区别是什么呢?什么时候应该用 ...

最新文章

  1. 《统一沟通-微软-技巧》-14-Exchange 2010 With SP1 OWA Integration
  2. 利用单调栈判断二叉搜索树的后序遍历序列
  3. 基于DOS命令打war包
  4. 玩转oracle 11g(12):卸载
  5. 让Node.js在Azure上运行-3
  6. 《Android移动应用开发》 复习题(一)
  7. 关于 intptr_t
  8. 开源车牌数据集CCPD介绍
  9. Python中国象棋源代码及素材
  10. 考研失利,找工作感悟
  11. 树莓派结合英特尔神经计算棒二代(NCS2)的openvino包部署人工智能应用
  12. php面试题之三——PHP语言基础(基础部分)
  13. 避免企业IT外包服务风险三大要素
  14. NYOJ - 独木舟上的旅行
  15. 身为一个SEO/SEM/运营专员,一天的工作是怎样的?
  16. Fractal Streets
  17. loadIdealTree:loadAllDepsIntoIdealTree: sill install loadIdealTree
  18. 热点追踪 | 数据,想说爱你不容易
  19. linux--shell--crontab定义运行任务
  20. 龙梦迷你电脑福珑2.0通过手机USB共享网络联网

热门文章

  1. linux查看UID命令,Linux下查看UID
  2. EMW3080固件烧录方法
  3. 使用TimerOne库
  4. vue3.0+ts+element-plus多页签应用模板:element-plus按需引入与动态换肤
  5. 源码分析 --- Spark如何确定Splits和分区数
  6. 锐捷网络设备初始化配置
  7. 新浪微创投狩猎季:5家LP皆VC大佬 人气日渐高涨
  8. Ureport2的表格更改小技巧
  9. word2vec损失函数
  10. 公司的hr是怎么在被解雇的边缘疯狂试探的