资讯详情

王道书P40 T15(单链表实现)

/**  * 用链表实现 王道 P40 T15  *  * ①算法思想:  * 首先将 A 链表断链,  * 然后逐一比较 A B 两个链表,  * 找出 data 插入相等的节点尾 A 。  *  * ②数据结构:  * typedef struct LNode{  *      int data;  *      struct LNode *next;  * }LNode,*LinkList;  *  * ③算法设计  */   #include <stdio.h> #include <iostream>  typedef struct LNode{     int data;     struct LNode *next; }LNode,*LinkList;   LinkList EqualValueFromABToC(LinkList &A,LinkList &B){     LinkList r,p,s = A -> next,q = B -> next;     A -> next = NULL;     r = A;     while(q){         p = s;///注意指令的位置         while(p) {             if (p -> data == q -> data) {                 r -> next = p;                 r = p;                 break;             }else{                 p = p -> next;             }         }         q = q -> next;     }     r -> next = NULL;     return A; }   以下是测试程序 尾插法建立单链表(有头节点) LinkList CreatLinkListR(){     LinkList L = (LinkList)malloc(sizeof(LNode));//创建头结点,头指针L指向头节点     LinkList p = L,q;     //这边不必让 L -> next 指向空,因为L保存了头结点指针,尾插一定会在L后插入一个新节点,所以L后面肯定会有节点而不是空,     //p用于保存尾节点指针,因此应允许 p -> next 为空。     int data;     while(1){         scanf("%d",&data);         if(data == 99999)             break;         q = (LinkList)malloc(sizeof(LNode));         q -> data = data;         p -> next = q;         p = q;     }     p -> next = NULL;     return L; }  循环单链表的遍历(有头节点,无头结点) 引入带头结点 L -> next ,传入无头结点 L LinkList Order(LinkList L){     while(L){//当L不是空的时候         printf("%d ",L -> data);         L = L -> next;     }     printf("\n"); }   int main(){     LinkList A = CreatLinkListR();     LinkList B = CreatLinkListR();     Order(A -> next);     Order(B -> next);     LinkList C = EqualValueFromABToC(A,B);     Order(C -> next); }

标签: 圆形连接器插p40j9q

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台