资源描述:
《数据结构单链表课程设计设计报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、《数据结构》课程设计报告1)需求分析此程序主要用来实现单链表的创建、插入、删除、排序、并、交、差运算及输出等基本操作。程序需要根据使用者的需要来运算得出符合要求的结果①在程序运行的过程中根据提示进行输入,使用了scanf函数;②使用了printf函数进行输出;③程序输出符合使用者的需要的结果;④程序能够输出任意运算的正确结果。2)概要设计1.定义所需的数据结构data*nexttypedefstructLNode{intdata;//数据域structLNode*next;//指针域}LNode,*LinkList;2.模块
2、划分voidLinkListCreat(LinkList&L,intn);//创建voidListInsert(LinkListhead,inti,inte);//插入voidListDelete(LinkListhead,inti,inte);//删除voidprintList(LinkList&head);//输出voidLinkListsort(LinkList&L);//排序voidLinkListMerge(LinkList&La,LinkList&Lb,LinkList&Lc);//并voidLinkListJi
3、ao(LinkList&La,LinkList&Lb,LinkList&Lc);//交voidLinkListcha(LinkList&La,LinkList&Lb,LinkList&Lc);//差voidLinkListhebing(LinkList&La,LinkList&Lb,LinkList&Lc);//差集的并28voidmain();//主函数,分别调用以上的子函数3.功能设计首先利用元素逆序插入法建立链表,然后导出菜单,用switch调用各个子函数,实现链表的创建,插入,删除,排序,交,并,差等运算,其中排序用
4、的是冒泡法。3)详细设计//单链表的创建voidCreatList(Lnode*L)/*建立链表CreastList函数*/{Lnode*p;intvalue;L->next=NULL;while(1)/*当输入非0数值时*/{scanf("%d",&value);if(value==NULL)return;p=(Lnode*)malloc(sizeof(Lnode));/*建立P链表*/p->data=value;p->next=L->next;/*把后输入的插到前面*/L->next=p;}}//单链表的输出voidpr
5、intList(Lnode*head){printf("输出的结果如下:");Lnode*p=head->next;//头结点赋给Pif(p==NULL){printf("Listisempty!");return;}while(p!=NULL){printf("%d",p->data);28p=p->next;}printf("");}//单链表的插入voidListInsert(LinkListhead,inti,inte)//在单链表中第i个位置之前插入e元素{LinkListp,s;intj=0;p=he
6、ad;while(p&&jnext;++j;}if(!p
7、
8、j>i-1){printf("要插入的位置错误!");}s=(LNode*)malloc(sizeof(LNode));//给插入的元素开辟空间s->data=e;//改变指针指向s->next=p->next;p->next=s;}//单链表的删除intListDelete_L(Lnode*L,inti)/*删除函数*/{Lnode*p=L->next;intj=0;Lnode*q;28while(p->next&&j
9、-1){p=p->next;++j;}/*找出第i节点,并令p指向其前趋*/if(!p->next
10、
11、j>i-1)return0;q=p->next;p->next=q->next;free(q);return1;}//单链表的差运算Lnode*c,*a,*t;c=C=(Lnode*)malloc(sizeof(Lnode));a=A->next;while(a){p=B->next;while(p&&a->data!=p->data){p=p->next;}if(!(p&&p->data==a->data)){t=(Lno
12、de*)malloc(sizeof(Lnode));t->data=a->data;c->next=t;c=t;}a=a->next;}c->next=NULL;printf("进行差运算,结果为:");printList(C);C=(Lnode*)malloc(sizeof(Ln