当前位置:   article > 正文

【数据结构】单链表应用2_void listinsert(linklist &l,int a)

void listinsert(linklist &l,int a)

1.合并两个非递减的线性表,形成一个非递减的单链表,输出该单链表

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. typedef struct Lnode{
  4. int data;
  5. struct Lnode *next;
  6. }Lnode,*LinkList;
  7. void InsertList(LinkList &L,int n,int a[]);
  8. void MergeList(LinkList &A,LinkList &B,LinkList &C);
  9. int main(){
  10. LinkList A,B,C;
  11. Lnode *p;
  12. int a[]={6,7,9,14,37,45,65,67};//两个数组
  13. int b[]={3,7,11,34,45,89};
  14. InsertList(A,sizeof(a)/sizeof(a[0]),a);
  15. InsertList(B,sizeof(b)/sizeof(b[0]),b);
  16. int ListLengthA=sizeof(a)/sizeof(a[0]);
  17. int ListLengthB=sizeof(b)/sizeof(b[0]);
  18. p=A->next;
  19. for(int i=0;i<ListLengthA;i++){
  20. if(p){
  21. printf("%d ",p->data);
  22. }
  23. p=p->next;
  24. }
  25. printf("\n");
  26. p=B->next;
  27. for(int i=0;i<ListLengthB;i++){
  28. if(p){
  29. printf("%d ",p->data);
  30. }
  31. p=p->next;
  32. }
  33. printf("\n");
  34. MergeList(A,B,C);
  35. p=C->next;
  36. while(p){
  37. printf("%d ",p->data);
  38. p=p->next;
  39. }
  40. }
  41. void InsertList(LinkList &L,int n,int a[]){//尾插法建立单链表,将数组里数变到单链表中
  42. L=new Lnode;
  43. L->next=NULL;
  44. Lnode *p;
  45. Lnode *r=L;
  46. int i;
  47. for(i=0;i<n;i++){
  48. p=new Lnode;
  49. p->data=a[i];
  50. r->next=p;
  51. r=p;
  52. }
  53. r->next=NULL;
  54. }
  55. void MergeList(LinkList &A,LinkList &B,LinkList &C){
  56. C=A;//c指针指向链表A头结点,此时c也是链表C的头指针
  57. Lnode *pa,*pb,*pc;
  58. pa=A->next;//pa指针指向A的首元结点
  59. pb=B->next;//pb指针指向B的首元结点
  60. pc=C;//pc指针指向链表c/A的头结点
  61. C->next=NULL;
  62. while(pa&&pb){
  63. if(pa->data<=pb->data){ //如果pa比pb所指数据域小,那么pa所指数据域是我们先要画箭头的
  64. pc->next=pa;//从pc画箭头到pa所指结点
  65. pc=pa;
  66. pa=pa->next;
  67. }else{
  68. pc->next=pb;
  69. pc=pb;
  70. pb=pb->next;
  71. }
  72. }
  73. //如果pa pb指针谁先指向空,则跳出上面的循环
  74. pc->next=pa?pa:pb;// 如果pa指针指向为空,而pb不为空,则让pc后继续画箭头连上pb所指的地址
  75. delete B; //释放链表B的头指针
  76. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/609304
推荐阅读
相关标签
  

闽ICP备14008679号