/* 测试将单链表中的字符串逆序输出
* 本程序默认输入的字符串长度大于2
* 2012-2-28
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef char elem;
typedef struct node {
elem data;
struct node* next;
} *pnode;
//将字符数组转换为单链表模式
pnode create_string (elem * origine) {
pnode head,p,prev;
prev = NULL;
while (*origine) {
p = (pnode) malloc (sizeof(struct node));
p->data = *origine;
p->next = NULL;
if (prev != NULL)
prev->next = p;
else
head = p;
origine++;
prev = p;
}
return head;
}
//输出打印由链表组成的字符串
void print_string (pnode p) {
printf("\n");
while (p) {
printf("%c",p->data);
p = p->next;
}
return;
}
//用链表将字符串逆序输出
//方法: 用三个变量,分别记录p,p->next,p->next->next;
//第三个变量用于遍历链表, 第一,二个变量用于交换链接
pnode reverse_string1 (pnode p) {
pnode pprev,pnext,pnnext;
pprev = p;
pnext = p->next;
pnnext = p->next->next;
pprev->next = NULL; //设置链尾指向空,不然会进入无循环
while (pnnext) {
pnext->next = pprev;
pprev = pnext;
pnext = pnnext;
pnnext = pnnext->next;
}
pnext->next = pprev; //设置头节点指向下一个
return pnext;
}
int main(int argc, const char *argv[])
{
elem str[20] = "hello world"; //用于测试的字符串
pnode pp = create_string(str);
print_string (pp);
print_string ( reverse_string1 (pp) );
return 0;
}
分享到:
相关推荐
字符串逆序+c语言字符串逆序输出+c语言字符串逆序逐行解释字符串逆序+c语言字符串逆序输出+c语言字符串逆序逐行解释字符串逆序+c语言字符串逆序输出+c语言字符串逆序逐行解释字符串逆序+c语言字符串逆序输出+c语言...
c++ 字符串逆序输出 用vs2005打开
逆序输出任意字符串 逆序输出任意字符串 逆序输出任意字符串 逆序输出任意字符串 逆序输出任意字符串
简单汇编程序:输入字符串逆序输出(两种)
用来实现 实现字符串逆序输出的c++代码。
字符串逆序输出StrReverse,上级测试成功
一个小程序,实现字符串的逆序和调序输出。
字符串逆序输出算法,使用的C++算法,算法精巧
只用简单几句话,实现逆序输出.使用gets和putchar来实现
java 利用栈将字符串逆序输出 java 利用栈将字符串逆序输出 java 利用栈将字符串逆序输出
1162:字符串逆序 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 31557 通过数: 20735 【题目描述】 输入一串以‘!’结束的字符,按逆序输出。 【输入】 如题述。 【输出】 如题述。 【输入样例】 abc! 【输出...
将字符串逆序算法示例 VC CUI程序 字符串逆序算法示例 VC CUI程序 字符串逆序算法示例 VC CUI程序
递归逆序输出字符串,代码自己看吧!!
c语言字符串逆序输出
C++输入字符串逆序输出
字符串逆序输出.exe
使用逆序来排列字符串并判断输入的字符串是否为回文
字符串逆序
字符串逆序字符串逆序代码 java python node 等语言代码源码.doc字符串逆序代码 java python node 等语言代码源码.doc字符串逆序代码 java python node 等语言代码源码.doc字符串逆序代码 java python node 等语言...