- 浏览: 72693 次
- 性别:
- 来自: 北京
/** *链表逆序的递归/非递归算法 */ #include <stdio.h> typedef int Item; typedef struct node { Item item; struct node *next; }Node, *List; /*reverse1~2是不带头结点的逆序算法*/ List reverse1(List l) { Node *p1,*p2; if(l==NULL) return l; p1=l->next; l->next=NULL; while(p1!=NULL){ p2=p1->next; p1->next=l; l=p1; p1=p2; } return l; } List reverse2(List l) { if(l==NULL || l->next==NULL) return l; Node *p=reverse2(l->next); l->next->next=l; l->next=NULL; return p; } /*reverse3~4是带头结点链表的逆序算法*/ void reverse3(List l) { Node *p1,*p2,*p3; if(l==NULL || l->next==NULL) return; p1=l->next; p2=p1->next; p1->next=NULL; while(p2!=NULL){ p3=p2->next; p2->next=p1; p1=p2; p2=p3; } l->next=p1; } void reverse4(List l, Node *first)/*此算法不是很好,需要在函数外判断l!=NULL*/ { if(first==NULL || first->next==NULL){ l->next=first; return; } reverse4(l,first->next); first->next->next=first; first->next=NULL; }
发表评论
-
排序算法---计数排序
2011-11-27 14:57 556#include <stdio.h> vo ... -
排序算法---归并排序
2011-11-26 19:33 696#include <stdio.h> vo ... -
排序算法---交换排序(冒泡排序、快速排序)
2011-11-26 19:32 664#include <stdio.h> vo ... -
排序算法---选择排序(简单插入排序、堆排序)
2011-11-26 19:31 598#include <stdio.h> vo ... -
排序算法---插入排序(简单排序、shell排序)
2011-11-26 19:29 600#include <stdio.h> vo ... -
删除字符串中的特定字符和重复字符
2011-11-26 13:45 629#include <stdio.h> vo ... -
Linux编程-多线程、同步和互斥(转载)
2011-11-14 15:27 1151http://www.cnblogs.com/skynet/a ... -
寻找字符串中的最大数字子串
2011-09-22 17:17 1471#include <stdio.h> int f ... -
删除子字符串
2011-09-21 15:27 561#include <stdio.h> #incl ... -
c语言随机数
2011-09-18 17:15 655#include <stdio.h> #i ... -
带头结点有序单链表的合并
2011-09-08 14:21 1143typedef int Item; typedef s ... -
递归算法---字符串---全/部分组合和全排列
2011-08-30 23:01 1173#include <stdio.h> #i ... -
递归算法---0-1背包问题(面试宝典)
2011-08-28 21:11 1852/** *正整数n,m,从数列1、2、3、...、n中随 ... -
递归算法---字符串全组合(面试宝典)
2011-08-28 17:24 1209/** *求一字符串所有字串的组合 */ #i ... -
递归算法---求解多元一次方程
2011-08-28 10:38 1860/** * 求解x1+x2+x3+...+x10 = ... -
(zz)关于类的sizeof
2011-08-27 18:16 524http://blog.sina.com.cn/s/blog_ ... -
(zz)结构体字节对齐原则
2011-08-27 17:53 1547结构体默认的字节对齐一般满足三个准则: 结构体变量的首 ... -
list.h from linux-2.4
2011-08-25 09:59 569#ifndef _LIST_H_ #define _L ... -
The C Programming Lang (K&R) hash table
2011-08-25 09:52 899hash.h #include <stdio.h ... -
Josephus环
2011-08-23 11:20 660/*************************** ...
相关推荐
链表反转:递归/非递归 链表/双向链表/队列/栈的实现 链表patition 有随机指针的链表的拷贝 队列 队列实现 双向队列实现 树 前缀树trie实现 二叉树遍历:先序/中序/后序/层序 递归/非递归 二叉树序列化与反序列化 ...
(2) 用先序遍历法建立二叉树二叉链表存储结构(结点数据域类型为char,输入字符序列用字符'#'表示NULL),实现中序线索化,并用非递归算法输出中序遍历结果的正序和逆序序列。 二、图 1. 已知某无向图如下图所示。画出...
本文档包含了用C语言实现的顺序表的插入、逆序构建链表、数制转换问题、链式结构的基本操作(构建、插入、删除)、二叉树的构建、二叉树的遍历(递归与非递归)、二分查找法、快速排序法等数据结构算法的代码与运行...
1、实现对线性表的顺序存储,并实现顺序表的插入、删除、升序合并,逆序操作 2、本程序实现了线性链表的初始化、插入、删除、...3、实现二叉树的创建,前中后序遍历,统计叶子数目,求二叉树高度的递归和非递归算法。
1. 把一个链表反向,递归,非递归都写一遍。 1.试编写3个函数实现 (1)建立一个双向链表 (2)插入一个节点 (3)删除一个节点 2.自己定义数据结构,写出程序:二叉树的前序遍历。 3.实现双向链表删除一个...
(2) 用先序遍历法建立二叉树二叉链表存储结构(结点数据域类型为char,输入字符序列用字符'#'表示NULL),实现中序线索化,并用非递归算法输出中序遍历结果的正序和逆序序列。 二、图 1. 已知某无向图如下图所示。画出...
(1) 用先序遍历法建立二叉树二叉链表存储结构(结点数据域类型为char,输入字符序列用字符'#'表示NULL),实现中序线索化,并用非递归算法输出中序遍历结果的正序和逆序序列 1. 简答题 1. 已知某无向图如下图所示。画...
04_字符串反转_方法2递归逆序(3个点)_传智扫地僧 05_考试题解答和项目开发代码书写手法 06_一级指针易错模型分析_重点 07_C语言中的const知识点总结 08_指针的输入和输出模型 09_课堂答疑_指针所指向内存释放 10_...
9、 已知f为单链表的表头指针,链表中存储的都是整型数据,试写出实现下列运算的递归算法: a. 求链表中的最大整数; b. 求链表的结点个数; c. 求所有整数的平均数; 告要求: 写出能运行的完整...
实例091 双链表逆序输出 120 实例092 约瑟夫环 122 实例093 创建顺序表并插入元素 123 实例094 向链表中插入结点 125 实例095 从链表中删除结点 126 实例096 合并两个链表 129 实例097 单链表就地逆置...
6.算法可以用不同的语言描述,如果用C 语言或 PASCAL语言等高级语言来描述,则算法实际上就是程序 了。( )【西安交通大学 1996 二、7(3分)】 7.程序一定是算法。( )【燕山大学 1998 二、2(2分)并改错】 8....
实例202 双链表逆序输出 291 实例203 约瑟夫环 293 实例204 创建顺序表并插入元素 294 实例205 合并两个链表 296 实例206 单链表节点逆置 298 实例207 应用栈实现进制转换 300 实例208 用栈实现行编辑程序 303 实例...
1.4.1. 递归和非递归俩种方法实现二叉树的前序遍历.................................... 73 1.4.2. 请修改 append 函数,利用这个函数实现............................................. 78 1.4.3. 有 n 个长为 m+...