链表的遍历-逆向输出1

#include<stdio.h>

#include<stdlib.h>

#define N 9

typedef struct node{

int  data;

struct node * next;

}ElemSN;

ElemSN  * Createlink(int a[],int n){

int i;

ElemSN * h=NULL,* tail, * p;

for( i=0;i<N;i++){

p=(ElemSN *)malloc(sizeof(ElemSN));

p->data =a[i];

p->next=NULL;

if(!h)

h=tail=p;

else

tail=tail->next=p;

}

return h;

}

PrePrintlink(ElemSN*h){

ElemSN * Pend=NULL;

ElemSN * p;

while(Pend-h){

for(p=h;p->next-Pend;p=p->next );

printf("%2d\n",p->data );

Pend=p;                                            //pend为哨兵,标志的位置都为上次遍历停止的位置,停止就输出当前node的data

}

}

int main(void){

int a[N]={1,2,3,4,5,6,7,8,9};

ElemSN * head;

head=Createlink(a,9);

PrePrintlink(head);

}

原文地址:http://blog.51cto.com/13645380/2153434

时间: 2024-09-30 20:40:38

链表的遍历-逆向输出1的相关文章

C语言链表头插法逆向输出

输入:1 2 3 4 5 -1 输出:5 4 3 2 1 此题考查头链表的创建之一 :头插法.所谓头插法是从一个空链表开始,重复读入数据,生成新结点,将读入的数据存放新结点的数据域中,然后讲新结点插入到当前链表的头结点之后,直至读入结束标志为止. #include <stdio.h>#include <stdlib.h> typedef struct Node{ int data ; struct Node * pNext ;}* PNODE ,NODE ;PNODE creat_

java版的单向链表的逆序输出

将单向链表逆序输出,方法有三种: a.遍历链表,将每个节点的内容存入一个数组中,然后逆序输出数组(最简单的做法) b.使用栈来逆序输出 c.直接将链表逆序然后输出(本文采用的方法) 先介绍算法: 1). 若链表为空或只有一个元素,则直接返回: 2). 设置两个前后相邻的指针p,q. 将p所指向的节点作为q指向节点的后继: 3). 重复2),直到q为空 4). 调整链表头和链表尾 示例:以逆序A->B->C->D为例,图示如下 package com.moluo.shujujiegou;

C语言实现单链表的遍历,逆序,插入,删除

单链表的遍历,逆序,插入,删除 #include<stdio.h> #include<stdlib.h> #include <string.h> #define bzero(a, b) memset(a, 0, b)//windows平台下无bzero函数. 增加宏拓展移植性 struct node { int data; //有效数据 struct node *pNext;//指向下一个节点的指针 }; struct node * make_node(int data

php遍历目录输出目录及其下的所有图片文件

在做网站的时候,需要给文章内所有的图片添加上logo,如何利用ThinkPHP来实现. ThinkPHP为我们很好的提供了图像处理类,给文章中的所有图片加上水印的思路,上传的图片文件都保存在一个文件夹下面,我只需要获取该文件夹以及子文件夹下面的所有图片,遍历一次,加上水印即可,因此目前的难度只是怎么获取文件中的图片,并且遍历一次即可.[在ImagesController控制器中具体会出现二维数组的遍历]:因此添加水印的图片问题就转换成了利用PHP遍历目录输出目录及其下的所有图片文件 //遍历目录

C 动态链表的建立,输出,删除,插入

动态链表的建立,输出,删除,插入 #include<stdio.h> #include<malloc.h> #include<stdlib.h> #define NULL 0 #define LEN sizeof(struct student) struct student { long num; float score; struct student*next; }; int n;/*n为全局变量*/ struct student *creat() { struct

数据结构之 图论---基于邻接矩阵的广度优先搜索遍历(输出bfs遍历序列)

数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历 Time Limit: 1000MS Memory limit: 65536K 题目描述 给定一个无向连通图,顶点编号从0到n-1,用广度优先搜索(BFS)遍历,输出从某个顶点出发的遍历序列.(同一个结点的同层邻接点,节点编号小的优先遍历) 输入 输入第一行为整数n(0< n <100),表示数据的组数. 对于每组数据,第一行是三个整数k,m,t(0<k<100,0<m<(k-1)*k/2,0< t<k),

链表从尾到头输出

将一个链表从尾到头输出. 使用了栈. 1 package OnlineTest; 2 3 /* 4 * 一个链表,从尾到头打印链表每个节点的值. 5 * */ 6 7 import java.util.Stack; 8 9 class Link{ 10 class Node{ 11 private int data; 12 private Node next; 13 public Node(int data){ 14 this.data = data; 15 } 16 public void a

数据结构之 图论---图的深度遍历( 输出dfs的先后遍历节点 )

图的深度遍历 Time Limit: 1000MS Memory limit: 65536K 题目描述 请定一个无向图,顶点编号从0到n-1,用深度优先搜索(DFS),遍历并输出.遍历时,先遍历节点编号小的. 输入 输入第一行为整数n(0 < n < 100),表示数据的组数. 对于每组数据,第一行是两个整数k,m(0 < k < 100,0 < m < k*k),表示有m条边,k个顶点. 下面的m行,每行是空格隔开的两个整数u,v,表示一条连接u,v顶点的无向边. 输

给定二叉树的先序遍历和中序遍历,输出它的后序遍历序列

这里没再用到先申请大Node数组的方法了,想练练写动态内存分配和释放的,一次OK了,也没怎么出错啊,开心~ 方法二 - Code: //给出一个二叉树的先序遍历和中序遍历,输出它的后序遍历 //直接构造的方法白书已给出.这里是先递归构造二叉树,然后进行后序遍历. #include<stdio.h> #include<string.h> #include<stdlib.h> #define MAXN 1000 typedef struct node { char data