欢迎来到天天文库
浏览记录
ID:39514280
大小:83.00 KB
页数:14页
时间:2019-07-04
《郝斌老师数据结构上课代码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第一部分typedefine的用法#includetypedefstructStudent{intsid;charname[100];charsex;}*PSTU,STU;//等价于STU代表structStudent,PSTU代表了structStudent*intmain(void){STUst;//structStudtnst;PSTUps=&st;//structStudent*ps=&st;ps->sid=99;printf("%d",ps->sid);return0;}第二部分链表部分的全部代码#include#include2、h>#includestructnode{intdata;structnode*next;};//创建一个链表,返回pheadstructnode*creat_list()//函数返回类型为structnode*类型{structnode*phead=NULL;structnode*ptail=NULL;structnode*pnew=NULL;inti;intlen;intval;phead=(structnode*)malloc(sizeof(structnode));if(phead==NULL){printf("动态分配失败");exit(-1);}phead-3、>next=NULL;ptail=phead;printf("请输入链表的长度len:");scanf("%d",&len);for(i=0;idata=val;pnew->next=NULL;ptail->next=pnew;ptail=pnew;}returnphead;}//输出链4、表voidshow_list(structnode*phead){structnode*p;p=phead->next;while(p!=NULL){printf("%5d",p->data);p=p->next;}printf("");}//判断链表是否为空boolis_empty(structnode*phead){if(phead->next==NULL)returntrue;elsereturnfalse;}//求链表的长度intlength_list(structnode*phead){intlen=0;structnode*p;p=phead->next;while(p!=NU5、LL){++len;p=p->next;}returnlen;}//对链表进行排序voidsort_list(structnode*phead){intl;inti,j,t;structnode*p,*q;l=length_list(phead);for(i=0,p=phead->next;inext){for(j=i+1,q=p->next;jnext){if(p->data>q->data){t=p->data;p->data=q->data;q->data=t;}}}}//在链表中插入数据voidinsert_list(structno6、de*phead,intpos,intval){inti;structnode*p=phead->next;structnode*pnew;if(p==NULL){printf("程序出错!");exit(-1);}for(i=0;inext;++i;}//让p指向插入位置的前面一个节点pnew=(structnode*)malloc(sizeof(structnode));pnew->data=val;pnew->next=p->next;p->next=pnew;return;}//删除链表中某一位置的节点voiddelete_list(structn7、ode*phead,intpos){inti;structnode*p=phead->next;structnode*q;if(p==NULL){printf("程序出错!");exit(-1);}for(i=0;inext;++i;}q=p->next;p->next=q->next;return;}//主函数intmain(){intl;structnod
2、h>#includestructnode{intdata;structnode*next;};//创建一个链表,返回pheadstructnode*creat_list()//函数返回类型为structnode*类型{structnode*phead=NULL;structnode*ptail=NULL;structnode*pnew=NULL;inti;intlen;intval;phead=(structnode*)malloc(sizeof(structnode));if(phead==NULL){printf("动态分配失败");exit(-1);}phead-
3、>next=NULL;ptail=phead;printf("请输入链表的长度len:");scanf("%d",&len);for(i=0;idata=val;pnew->next=NULL;ptail->next=pnew;ptail=pnew;}returnphead;}//输出链
4、表voidshow_list(structnode*phead){structnode*p;p=phead->next;while(p!=NULL){printf("%5d",p->data);p=p->next;}printf("");}//判断链表是否为空boolis_empty(structnode*phead){if(phead->next==NULL)returntrue;elsereturnfalse;}//求链表的长度intlength_list(structnode*phead){intlen=0;structnode*p;p=phead->next;while(p!=NU
5、LL){++len;p=p->next;}returnlen;}//对链表进行排序voidsort_list(structnode*phead){intl;inti,j,t;structnode*p,*q;l=length_list(phead);for(i=0,p=phead->next;inext){for(j=i+1,q=p->next;jnext){if(p->data>q->data){t=p->data;p->data=q->data;q->data=t;}}}}//在链表中插入数据voidinsert_list(structno
6、de*phead,intpos,intval){inti;structnode*p=phead->next;structnode*pnew;if(p==NULL){printf("程序出错!");exit(-1);}for(i=0;inext;++i;}//让p指向插入位置的前面一个节点pnew=(structnode*)malloc(sizeof(structnode));pnew->data=val;pnew->next=p->next;p->next=pnew;return;}//删除链表中某一位置的节点voiddelete_list(structn
7、ode*phead,intpos){inti;structnode*p=phead->next;structnode*q;if(p==NULL){printf("程序出错!");exit(-1);}for(i=0;inext;++i;}q=p->next;p->next=q->next;return;}//主函数intmain(){intl;structnod
此文档下载收益归作者所有