单链表的建立及其基本操作的实现(完整程序).doc

单链表的建立及其基本操作的实现(完整程序).doc

ID:56904407

大小:17.50 KB

页数:4页

时间:2020-07-21

单链表的建立及其基本操作的实现(完整程序).doc_第1页
单链表的建立及其基本操作的实现(完整程序).doc_第2页
单链表的建立及其基本操作的实现(完整程序).doc_第3页
单链表的建立及其基本操作的实现(完整程序).doc_第4页
资源描述:

《单链表的建立及其基本操作的实现(完整程序).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、#include"stdio.h"/*单链表方式的实现*/#include"malloc.h"typedefcharElemType;typedefstructLNode/*定义链表结点类型*/{ElemTypedata;structLNode*next;}LNode,*LinkList;/*注意与前面定义方式的异同*//*建立链表,输入元素,头插法建立带头结点的单链表(逆序),输入0结束*/LinkListCreateList_L(LinkListhead){ElemTypetemp;LinkListp;printf("请输入结点值(输入0结束)");fflush(stdin);s

2、canf("%c",&temp);while(temp!='0'){if(('A'<=temp&&temp<='Z')

3、

4、('a'<=temp&&temp<='z')){p=(LinkList)malloc(sizeof(LNode));/*生成新的结点*/p->data=temp;p->next=head->next;head->next=p;/*在链表头部插入结点,即头插法*/}printf("请输入结点值(输入0结束):");fflush(stdin);scanf("%c",&temp);}returnhead;}/*顺序输出链表的内容*/voidListPint_L(Link

5、Listhead){LinkListp;inti=0;p=head->next;while(p!=NULL){i++;printf("单链表第%d个元素是:",i);printf("%c",p->data);p=p->next;}}/*在带头链表结点的单链表中第i(从1开始)个位置之后插入元素*/intLinkInsert_L(LinkListhead,inti,ElemTypee){LinkListp=head;LinkLists;intj;p=p->next;for(j=1;jnext;elsebreak;}if(!p

6、

7、i<1){pr

8、intf("error!!请输入正确的i的值!!");return0;}s=(LinkList)malloc(sizeof(LNode));s->data=e;s->next=p->next;/*在当前结点p之后插入结点s*/p->next=s;return1;}/*在带头结点的单链表中删除第i(从1开始)个位置的元素*/intListDel_L(LinkListhead,inti){LinkListp,tmp;intj;p=head->next;tmp=head;for(j=1;j

9、->next;tmp=tmp->next;}elsebreak;}if(!p

10、

11、i<1){printf("error!!请输入正确的i值!!");return0;}tmp->next=p->next;free(p);return1;}voidmain(){inti;charcmd,e;LinkListhead;head=(LinkList)malloc(sizeof(LNode));head->next=NULL;CreateList_L(head);ListPint_L(head);do{printf("i,I……插入");printf("d,D……删除");printf("q,Q

12、……退出");do{fflush(stdin);scanf("%c",&cmd);}while((cmd!='d')&&(cmd!='D')&&(cmd!='i')&&(cmd!='I')&&(cmd!='q')&&(cmd!='Q'));switch(cmd){case'i':case'I':printf("请输入您要插入的数据:");fflush(stdin);scanf("%c",&e);printf("请输入您要插入的位置:");scanf("%d",&i);LinkInsert_L(head,i,e);ListPint_L(head);break;case'd':case'

13、D':printf("请输入您要删除的位置:");fflush(stdin);scanf("%d",&i);ListDel_L(head,i);ListPint_L(head);break;}}while((cmd!='q')&&(cmd!='Q'));}

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

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

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