赣榆建设局网站,成都小企业网站设计,浙江建设人才网官网,番禺手机网站制作推广本变博客源于自己想复习一下C语言#xff0c;所以便自己动手复习了一下链表的相关操作。做个人记录使用。 main.c
#include stdio.h
#include list.hint main()
{student *a;printf(hello world\n) ;printf(----初始化列表----------\…本变博客源于自己想复习一下C语言所以便自己动手复习了一下链表的相关操作。做个人记录使用。 main.c
#include stdio.h
#include list.hint main()
{student *a;printf(hello world\n) ;printf(----初始化列表----------\n);ainit();printf(----创建列表----------\n);create_front_list(a,3);printf(list的个数为count %d\n,count);printf(----读取列表3位置上数据----------\n);read_any_list(a,3);printf(------------读取全部数据------------------\n);read_all_list(a);printf(----------插入列表插入到位4的后面--------------------\n);insert_behind_list(a ,4);printf(----------插完后的列表数据---------\n);read_all_list(a);printf(------------删除列表指定位置的数据-------------------\n);delete_list(a,2);printf(-------------删除后列表的数据------------------\n);read_all_list(a);return 0;
}
list.c
#includestdio.h
#include stdlib.h
#include list.h
int count 0;
student *init()
{//chuangjian节点student * head(struct student *)malloc(sizeof(student));if(headNULL){printf(nmalloc failed \n);return NULL;}head-num0;head-score99.2;head-nextNULL;count;return head;}//链表的建立
void create_front_list(student *head,int n)
{ int i;student * last;student * s;lasthead;shead;printf(请你输入%d个整数\n,n);for(i0;in;i){printf(begin to input\n);s-next(struct student *)malloc(sizeof(student));lasts-next;slast;scanf(%d,%f,(s-num),(s-score));printf(end to input\n);count;}s-nextNULL;lastNULL;sNULL;return ;
}//链表的读取操作
void read_all_list(student * head)
{int i;printf(total data in list is \n);student *rehead;if(headNULL){printf(NO data\n);return ;}else{for(i0;icount;i){printf(num %d score %f \n,re-num, re-score);rere-next;}}}//读取其中指定第几个节点的数值
void read_any_list(student * head,int n)
{ int i1;student *rehead;printf(That you want to read list sequence is %d\n,n);if(ncount){printf(The number you have input exceeds the max length of this list \n );return ;}else{while(true){rere-next;i;if(in){printf(the number has been find ,data as follow \n);printf(num %d, score %f\n,re-num,re-score);break;}}return ;}}//链表的插入//由于是单链表所以我这里只使用尾部
void insert_behind_list(student * head ,int n)
{printf(insert behind list \n\n);int i;student * shead;if(ncount){//表名插入的位置已经查过了节点长度printf(you has exceed this max length\n);return ;}else{ //开辟一个新的节点student * last(struct student *)malloc(sizeof(student));printf(please input your inserted data \n);scanf(%d,%f,(last-num),(last-score));for(i1;in;i){ss-next;//借助一个指针指向你想插入的节点前面}last-nexts-next;s-nextlast;lastNULL;printf(---------end of insert data--------\n);count;}}//链表的删除
void delete_list(student * head,int n)
{int i;student * shead;student * qhead-next;printf(the number do you want to delete is number %d,n);if(ncount){printf(there are no data \n);}else{for(i1;in;i){ss-next;qq-next;}printf(你想删除的数据是%d,%f,q-num,q-score);s-nextq-next;free(q);count--;//记录节点的个数的}}
list.h
#define true 1
#define flase 0typedef struct student{int num;float score;struct student *next ;}student;
extern int count;
student *init();
void create_front_list(student *head,int n);
void read_all_list(student * head);
void read_any_list(student * head,int n);
void insert_behind_list(student * head ,int n);
void delete_list(student * head,int n); 备注每次更改操作后必须使用count–,否则内存就会出现泄漏。 hello world ----初始化列表---------- ----创建列表---------- 请你输入3个整数 begin to input 1,1 end to input begin to input 2,2 end to input begin to input 3,3 end to input list的个数为count 4 ----读取列表3位置上数据---------- That you want to read list sequence is 3 the number has been find ,data as follow num 2, score 2.000000 ------------读取全部数据------------------ total data in list is num 0 score 99.199997 num 1 score 1.000000 num 2 score 2.000000 num 3 score 3.000000 ----------插入列表插入到位4的后面-------------------- insert behind list
please input your inserted data 4,4 ---------end of insert data-------- ----------插完后的列表数据--------- total data in list is num 0 score 99.199997 num 1 score 1.000000 num 2 score 2.000000 num 3 score 3.000000 num 4 score 4.000000 ------------删除列表指定位置的数据------------------- the number do you want to delete is number 2你想删除的数据是2,2.000000-------------删除后列表的数据------------------ total data in list is num 0 score 99.199997 num 1 score 1.000000 num 3 score 3.000000 num 4 score 4.000000
Process returned 0 (0x0) execution time : 27.276 s Press any key to continue.