加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

单链表的建立、输出、倒置旋转

发布时间:2020-12-13 20:20:13 所属栏目:百科 来源:网络整理
导读:声明结构体类型的形式: sturct 结构体类型名 { 成员表列; } 定义结构体类型变量的三种方法: 1、类型名+变量名; 2、struct 结构体名 { 成员列表 }变量名表列; 3、sturct { 成员列表 }变量名列表; //较少使用 typedef 在结构体中的用法 typedef st

声明结构体类型的形式:

sturct 结构体类型名

成员表列;

定义结构体类型变量的三种方法:

1、类型名+变量名;

2、struct 结构体名

成员列表

}变量名表列;

3、sturct

成员列表

}变量名列表; //较少使用

typedef 在结构体中的用法

typedef struct a
{char input;
a *p_input;
}a,*b;

等同于

typedef struct a
{char input;
a *p_input;
}*b;

其中声明了了b为结构体指针类型(a *): typedef a *b;

如typedef char * STRING //声明STRING为字符指针类型

STRING p,s[10]; //p为字符指针变量,s为指针数组(含10个元素)

程序如下:

#include<stdio.h>
#include<malloc.h>


typedef struct LNode{
int data;
struct LNode *next;
}LNode,*Linklist;

Linklist CreateList_L(Linklist L,int n) //构建单链表
{
L=(Linklist)malloc(sizeof(LNode));
L->next=NULL;
Linklist p;
for(int i=n;i>0;i--){
p=(Linklist)malloc(sizeof(LNode));
scanf("%d",&(p->data));
p->next=L->next;
L->next=p;//插到表头
}
return L;
}

void OutputList_L(Linklist L,int n) //输出单链表值
{
Linklist p;
p=L->next;
for(int i=0;i<n;i++){
printf("%d ",p->data);
p=p->next;
}
printf("/n");
}

Linklist Inversion(Linklist L) //链表倒置
{
Linklist Newp=NULL,Nowp,Oldp;//定义三个节点标记
Oldp=L->next;
while(Oldp){
Nowp=Oldp;
Oldp=Oldp->next;
Nowp->next=Newp;
Newp=Nowp;
}
L->next=Newp;
return L;
}

void main()
{
Linklist L;
L=CreateList_L(L,4);
OutputList_L(L,4);
int i;
L=Inversion(L);
OutputList_L(L,4);

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读