C语言-数据结构-单链表倒置
来源:互联网 发布:java中的接口是什么 编辑:程序博客网 时间:2024/06/05 20:57
/*#include <stdio.h>
#include <stdlib.h>
//单链表倒置
typedef struct node
{
int data;
struct node *next;
}body;
body *table()
{
int i,a;
body *head,*p1,*p2;
head=NULL;
for(i=0;;i++)
{
p1=(body *)malloc(sizeof (body));
scanf("%d",&a);
p1->data=a;
if(head==NULL)
{
head=p1;
p2=p1;
}
else
{
p2->next=p1;
p2=p1;
}
if(getchar=='\n')
break;
}
p2->next=NULL;
return head;
}
body *reverse(body *head)//倒置
{
body *p,*s;
if(head->next&&head->next->next)
{
p=head; //p为第一个节点
s=p->next; //s为第二个节点
p->next=NULL; //第一个节点指针域为空
while(s)
{
p = s; //p为第二节点
s= s->next; //s为第三个节点
p->next=head; //划线,第二节点指针域
head=p; //head为第二个节点
}
}
return head;
}
void input()
{
body *p;
p=table();
p=reverse(p);
while(p)
{
printf("%d ",p->data);
p=p->next;
}
}
int main()
{
input();
return 0;
}
*/
#include <stdio.h>
#include <stdlib.h>
struct LNode{
int data;
struct LNode *next;
};
//创建
struct LNode *create(int n){
int i,a;
struct LNode *head,*p1,*p2;
head = NULL;
for(i=n;i>0;i--){
scanf("%d ",&a);
p1 = (struct LNode*)malloc(sizeof(struct LNode));
p1->data = a;
if(head==NULL){
head = p1;
p2 = p1;
}else{
p2->next = p1;
p2 = p1;
}
}
p2->next = NULL;
return head;
}
//倒置
struct LNode *reverse(struct LNode *head){
struct LNode *p,*s;
if(head->next&&head->next->next){
p=head;//p为第一个节点
s=p->next;//s为第二个节点
p->next=NULL;//第一个节点指针域为空 断线
while(s){
p = s;//p为第二节点
s = s->next;//s未第三个节点
p->next=head;//划线,第二节点指向第一节点
head = p;//head为第二节点
}
}
return head;
}
int main()
{
int n;
struct LNode *q;
scanf("%d",&n);
q=create(n);
q=reverse(q);//倒置
while(q){
printf("%d ",q->data);
q = q->next;
}
return 0;
}
struct node *reverse(struct node *head)
{
struct node *p,*s;
if()
}
#include <stdlib.h>
//单链表倒置
typedef struct node
{
int data;
struct node *next;
}body;
body *table()
{
int i,a;
body *head,*p1,*p2;
head=NULL;
for(i=0;;i++)
{
p1=(body *)malloc(sizeof (body));
scanf("%d",&a);
p1->data=a;
if(head==NULL)
{
head=p1;
p2=p1;
}
else
{
p2->next=p1;
p2=p1;
}
if(getchar=='\n')
break;
}
p2->next=NULL;
return head;
}
body *reverse(body *head)//倒置
{
body *p,*s;
if(head->next&&head->next->next)
{
p=head; //p为第一个节点
s=p->next; //s为第二个节点
p->next=NULL; //第一个节点指针域为空
while(s)
{
p = s; //p为第二节点
s= s->next; //s为第三个节点
p->next=head; //划线,第二节点指针域
head=p; //head为第二个节点
}
}
return head;
}
void input()
{
body *p;
p=table();
p=reverse(p);
while(p)
{
printf("%d ",p->data);
p=p->next;
}
}
int main()
{
input();
return 0;
}
*/
#include <stdio.h>
#include <stdlib.h>
struct LNode{
int data;
struct LNode *next;
};
//创建
struct LNode *create(int n){
int i,a;
struct LNode *head,*p1,*p2;
head = NULL;
for(i=n;i>0;i--){
scanf("%d ",&a);
p1 = (struct LNode*)malloc(sizeof(struct LNode));
p1->data = a;
if(head==NULL){
head = p1;
p2 = p1;
}else{
p2->next = p1;
p2 = p1;
}
}
p2->next = NULL;
return head;
}
//倒置
struct LNode *reverse(struct LNode *head){
struct LNode *p,*s;
if(head->next&&head->next->next){
p=head;//p为第一个节点
s=p->next;//s为第二个节点
p->next=NULL;//第一个节点指针域为空 断线
while(s){
p = s;//p为第二节点
s = s->next;//s未第三个节点
p->next=head;//划线,第二节点指向第一节点
head = p;//head为第二节点
}
}
return head;
}
int main()
{
int n;
struct LNode *q;
scanf("%d",&n);
q=create(n);
q=reverse(q);//倒置
while(q){
printf("%d ",q->data);
q = q->next;
}
return 0;
}
struct node *reverse(struct node *head)
{
struct node *p,*s;
if()
}
阅读全文
0 0
- C语言-数据结构-单链表倒置
- C语言单链表倒置,头插法详细介绍
- 【数据结构】单链表的倒置
- 数据结构--单链表(C语言)
- C语言数据结构-单链表
- C语言的字符串倒置问题
- C语言—指针—汉字倒置
- C语言分离单词问题(倒置)
- 数据结构 单链表运用 C语言
- 数据结构.单链表(C语言实现)
- C语言数据结构--(单链表)
- 数据结构--单链表c语言实现
- 【数据结构】C语言实现单链表
- c语言数据结构--单链表操作
- 【C语言数据结构】循环单链表
- c语言数据结构之单链表
- 用链表实现单聊表的倒置(c语言编)
- c语言把将整数倒置1234变成4321
- 工程模板设置
- win10 python2.7环境下安装pypcap
- C语言字符串详解
- 洛谷 P1282 多米诺骨牌
- mui中的页面传值方法
- C语言-数据结构-单链表倒置
- #POJ2750#Potted Flower(线段树)
- java反射机制
- bzoj1324: Exca王者之剑
- 指针与一维数组,用指针指向数组,以及指针的使用
- 解决apt-cyg安装软件出现的MD5 sum did not match, exiting错误
- 三维图形技术点
- LEETCODE 36. Valid Sudoku
- Leetcode: insertion-sort-list