|
声明结构体类型的形式:
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);
} (编辑:安卓应用网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|