20140720

1、链表的反转

#include<iostream>
#include<malloc.h>
using namespace std;
typedef struct ListNode
{
    int data;
    struct ListNode * Next;
}ListNode;

ListNode *ReverseList(ListNode *pHead)
{
    ListNode *PReverseHead=NULL;
    ListNode *pBefore=NULL;
    ListNode *pAfter=NULL;
    ListNode *pNode=pHead;
    while(pNode!=NULL)
    {
        pAfter=pNode->Next;

        if(pNode->Next==NULL)
        {PReverseHead=pNode;}
        pNode->Next=pBefore;
        pBefore=pNode;
        pNode=pAfter;
    }
    return PReverseHead;
}

ListNode *CreateList()
{
    int x=0;
    cout<<"input data:";  cin>>x;
    if(x==0)
        return NULL;
    ListNode *pHead=(ListNode *)malloc(sizeof(ListNode));
    pHead->data=x;
    pHead->Next=NULL;
    ListNode *rear=pHead;
    cout<<"input data:";    cin>>x;
    while(x!=0)
    {
        ListNode *p=(ListNode *)malloc(sizeof(ListNode));
        p->data=x;
        p->Next=NULL;
        rear->Next=p;
        rear=p;
        cout<<"input data:";
        cin>>x;
    }
    return pHead;
}

void PrintList(ListNode *pHead)
{
    ListNode *p=pHead;
    while(p!=NULL)
    {
        cout<<p->data<<" ";
        p=p->Next;
    }
}
void main()
{
    ListNode *pHead=CreateList();
    PrintList(pHead);
    ListNode *pReverseHead=ReverseList(pHead);

    PrintList(pReverseHead);
}

2、合并链表

#include<iostream>
#include<malloc.h>
using namespace std;
typedef struct ListNode
{
    int data;
    struct ListNode * Next;
}ListNode;

ListNode *MergeList(ListNode *pHead1,ListNode *pHead2)
{
    if(pHead2==NULL)
        return pHead1;
    if(pHead1==NULL)
        return pHead2;
    ListNode *pMergeHead=NULL;
    if(pHead1->data<pHead2->data)
    {
        pMergeHead=pHead1;
        pHead1->Next=MergeList(pHead1->Next,pHead2);
    }
    else
    {
        pMergeHead=pHead2;
        pHead2->Next=MergeList(pHead1,pHead2->Next);
    }
    return pMergeHead;
}

ListNode *CreateList()
{
    int x=0;
    cout<<"input data:";  cin>>x;
    if(x==0)
        return NULL;
    ListNode *pHead=(ListNode *)malloc(sizeof(ListNode));
    pHead->data=x;
    pHead->Next=NULL;
    ListNode *rear=pHead;
    cout<<"input data:";    cin>>x;
    while(x!=0)
    {
        ListNode *p=(ListNode *)malloc(sizeof(ListNode));
        p->data=x;
        p->Next=NULL;
        rear->Next=p;
        rear=p;
        cout<<"input data:";
        cin>>x;
    }
    return pHead;
}

void PrintList(ListNode *pHead)
{
    ListNode *p=pHead;
    while(p!=NULL)
    {
        cout<<p->data<<" ";
        p=p->Next;
    }
}
void main()
{
    ListNode *pHead1=CreateList();
    ListNode *pHead2=CreateList();
    ListNode *pMergeNode=MergeList(pHead1,pHead2);
    PrintList(pMergeNode);
}

3、两颗二叉树,查找是否存在子结构

4、写代码之前先讲思路,举例子和画图是很好的方法-田超(微软)

5、无法解析的外部符号原因是没有包含相应的.lib文件

20140720

时间: 2024-10-25 14:02:12

20140720的相关文章

2014-07-20 体会到了北漂的不容易

北京租房第一天,房子里很潮,这房子我住一个多月,我估计我真的住不下去很长时间,只有真正的租一次房子,才明白家才是最好的. 550每月,不含水电费,不知道怎么形容,房间里照不到太阳,一个窗户,一扇门,没有什么别的了.住在东五环的位置,每天上下班很远,算了. 明天还要生活,必须这样过下去,没有什么别的办法,只能这样无奈下去,其实公司比租的地方舒服,洗洗睡了,北漂真的不容易.

Spark1.0.0伪分布安装指南

?一.下载须知 软件准备: spark-1.0.0-bin-hadoop1.tgz   下载地址:spark1.0.0 scala-2.10.4.tgz    下载下载:Scala 2.10.4 hadoop-1.2.1-bin.tar.gz   下载地址:hadoop-1.2.1-bin.tar.gz jdk-7u60-linux-i586.tar.gz  下载地址:去官网下载就行,这个1.7.x都行 二.安装步骤 hadoop-1.2.1安装步骤,请看: http://my.oschina.

GPS(NMEA)数据解析

一.GPS定位信息 设置好gps模式,启动gps,正常的话在gps通路有NMEA数据上报,如下: $GPGSV,3,1,11,01,62,130,42,07,61,201,43,11,72,075,28,17,20,251,38*7A $GPGSV,3,2,11,30,63,272,44,03,00,149,,08,34,046,,13,05,309,*76 $GPGSV,3,3,11,22,08,127,,27,03,057,,28,34,312,*4C $GPGGA,042523.0,341

iOS 8 应用构建细节挖掘 之 应用启动流程

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 24K 标题党! 不过内容绝对够细节而全面,仅针对启动流程这一小块块哟! iOS 应用启动流程,这个话题早在09年就非常熟悉,然而时隔多年,不知是

Linux逻辑卷管理LVM学习总结

LVM(Logical Volume Manager),它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,可以弹性的增加或减小分区的大小,使得磁盘分区管理更具灵活性.LVM的实现示意图: 创建LVM实例: 1.首先创建3个准备组成卷组VG的物理分区,并且把分区格式改为8e.以/dev/sdb1./dev/sdb2./dev/sdb3为例: #在/dev/sdb磁盘上创建分区/dev/sdb1./dev/sdb2./dev/sdb3,大小分别为3G.4G.

学习笔记--对最近学习的总结

今天重新安装了Linux mint 17 Cinnamon 系统,进行了以下的操作:  一.进行系统的更新  sudo  apt-get dist-upgrade   查看系统信息:  uname -a  lsb_release -a  sudo reboot  二.进行系统的中文配置  1.软件源更改    主要配置:主要配置:NCHC               基础配置:aliyun  2.在终端中安装中文语言包  sudo apt-get install language-pack-zh

NSDate的处理:前一天、后一天等关于时区偏移的处理以及在数据库中的使用

看来很多网上关于日期的处理,今天.昨天.前天.后天.一周等,满心欢喜的拿着去验证结果总是不尽如人意,看别别人的代码看的脑涨,自己就写一个简单的,自己来用,以后用其他的方法,我会在完善,再次记录,以方便以后查阅 --宋飞祥    2014.7.19 直接上代码,很容易理解: #import <Foundation/Foundation.h> @interface MyCutomNSDateDeal : NSObject +(NSInteger)timeZoneOffset; +(NSIntege

Python环境搭建(windows)

Python环境搭建(windows) Python简介 Python(英国发音:/?pa?θ?n/ 美国发音:/?pa?θɑ?n/),是一种面向对象.直译式计算机编程语言,具有近二十年的发展历史,成熟且稳定.它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务.它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块. 与Scheme.Ruby.Perl.Tcl等动态语言一样,Python具备垃圾回收功能,能够自动管理内存使用.

如何让SQLPLUS现实带日期的时间戳

from http://www.itpub.net/thread-1876506-4-1.html SQL> defineDEFINE _DATE           = "20-7月 -14" (CHAR)DEFINE _CONNECT_IDENTIFIER = "ORCL" (CHAR)DEFINE _USER           = "SYSTEM" (CHAR)DEFINE _PRIVILEGE      = ""