C中struct类型以及指针链表

来源:互联网 发布:淘宝注册商家有多少家 编辑:程序博客网 时间:2024/06/05 10:39
#include <iostream>
#include <stdio.h>
#include <malloc.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */


#define ElemType int


//指针处理链表 :单链表 
struct Node{
ElemType data;
struct Node *next;
};


typedef Node* List;


void InitList(List *head){
*head = NULL;




void CreatList (List *head){
*head = (Node*)malloc(sizeof(Node));
(*head)->data = 1;
(*head)->next = NULL;

Node *p = *head;
for(int i = 2;i<=10; i++){
Node *s = (Node*)malloc(sizeof(Node));
s->data = i;
s->next = NULL;

p->next = s;
p = s;
}
}


void ShowList(List head){
Node *p = head;
while(p != NULL){
printf("%d-->",p->data);
p = p->next;
}
printf("over!\n");
}
int main(){
List mylist;
InitList(&mylist);
CreatList(&mylist);
ShowList(mylist); 
return 0;



/*
//学生结构体设计


//初始化 
struct student{
char id[5];
char name[10];
int age;
char sex[5];
}s2 =  {"0002","holiday",9,"girl"}; //声明同时定义变量 
int main(int argc, char *argv[]) {


student s1 = {"0001","holiday",10,"boy"};//利用结构体名定义变量s3. 
printf("id = %s, name = %s, age = %d, sex = %s\n",s1.id, s1.name,s1.age,s1.sex);

//结构体指针,指针指向结构体变量
//注意指针访问结构体,要用指针符号 “-> ” 
student *ps = &s1;
printf("id = %s, name = %s, age = %d, sex = %s\n",ps->id, ps->name,ps->age,ps->sex); 

//结构体数组
student s[2] = {{"0001","holiday",10,"男"},"0002","holiday",9,"girl"}; 
int i;
for (i = 0;i<2;i++){
printf("id = %s, name = %s, age = %d, sex = %s\n",s[i].id, s[i].name, s[i].age, s[i].sex);
}
// 

return 0;
}




//定义 
//定义变量2.在声明的同时定义结构体变量方法
/* 
struct student{
char id[5];
char name[10];
int age;
char sex[4];
}s1,s2; //声明同时定义变量 
int main(int argc, char *argv[]) {
int a;
int b; 
int c;
student s3;//利用结构体名定义变量s3. 
return 0;
}


/* 
//student:id,name,age,sex.....
//定义变量:1.利用结构体名称定义变量 
struct student{
char id[5];
char name[10];
int age;
char sex[4];
}; 
int main(int argc, char *argv[]) {
int a;
int b; 
int c;

struct student s1, s2, s3;
//c中要在结构体变量s1,s2,s3前的student前加struct,才能进行调用。
//但在C++中是不需要的
//student s1,s2,s3;
return 0;
}*/