用c语言实现异质链表

用c语言实现异质链表

ID:43847020

大小:202.93 KB

页数:6页

时间:2019-10-15

用c语言实现异质链表_第1页
用c语言实现异质链表_第2页
用c语言实现异质链表_第3页
用c语言实现异质链表_第4页
用c语言实现异质链表_第5页
资源描述:

《用c语言实现异质链表》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、/***@brief用C语言实现异质链表*@date2014-10-12*/#include#includetypedefstructNode*PtrToNode;typedefPtrToNodelist;structNode{void*pData;inttype;//储存数据的类型,1-int,2-float,3-charPtrToNodenext;};/***@brief功能:创建一个新的链表*@paramvoid*@returnlist:链表的头*/listCreate(void){listL;L=(lis

2、t)malloc(sizeof(structNode));if(NULL==L){printf("Outofspace!");returnNULL;}L->next=NULL;returnL;}/***@brief功能:插入一个新的节点*@paramP:指向节点的指针type:输入的数据类型*@returnvoid*/voidInsert(listP,inttype){PtrToNodetemp;temp=(PtrToNode)malloc(sizeof(structNode));if(temp==NULL){printf("Outofspace!"

3、);return;}temp->type=type;switch(type){//根据不同的类型进行相应的输入操作case1:{temp->pData=malloc(sizeof(int));//为pData指针分配内存printf("int:");scanf("%d",temp->pData);break;}case2:{temp->pData=malloc(sizeof(float));printf("float:");scanf("%f",temp->pData);break;}case3:{temp->pData=malloc(sizeof(

4、char));printf("char:");scanf("%c",temp->pData);break;}default:{printf("Wrongtype!");break;}}temp->next=NULL;P->next=temp;}/***@brief功能:遍历输出链表*@paramL:指向链表头部的指针*@reurnvoid*/voidPrint(listL){L=L->next;if(L==NULL){//提示链表为空printf("ListisNULL!");return;}while(L!=NULL)//链表非空{swit

5、ch(L->type)//根据存储的数据类型进行相应输出操作{case1:{printf("%d",*(int*)(L->pData));break;}case2:{printf("%.2f",*(float*)(L->pData));break;}case3:{printf("%c",*(char*)(L->pData));break;}default:{break;}}L=L->next;}printf("");}/***@brief功能:链头节点删除*@paramL:指向链头的指针*@retutnvoid*/voidDeletehead(l

6、istL){PtrToNodetemp;if(L->next!=NULL){temp=L->next;L->next=temp->next;free(temp);//释放内存}}/***@brief功能:链表逆置*@paramL:指向链表头部的指针*@returnvoid*/voidInverse(listL){PtrToNodePrevious,Next,Head;Previous=NULL;Head=L;//保存链表头部L=L->next;if(L==NULL){return;}while(L->next!=NULL)//遍历链表将链表逆置{Ne

7、xt=L->next;L->next=Previous;Previous=L;L=Next;}L->next=Previous;Head->next=L;}/***@brief功能:删除链表*@paramL:指向链表头部的指针*@returnvoid*/voidRemove(listL){PtrToNodetemp,p;p=L->next;L->next=NULL;while(p!=NULL){temp=p->next;free(p);p=temp;}}/***@brief主函数,实现链表的创建、遍历输出、删除、逆置、销毁等功能*/intmain()

8、{inttype;//标记数据类型listL;PtrToNodeHead;L=Create();Head=L

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。