zoukankan      html  css  js  c++  java
  • 【数据结构】 线性表 的 链式存储结构

      1 #include<stdio.h>
      2 #include<stdlib.h>
      3 
      4 typedef struct LinkList {
      5     int data;
      6     LinkList *next;
      7 
      8 }LinkList , *linklist;
      9 //创建头结点 
     10 int CreateList(linklist &L) {
     11     L = (linklist)malloc(sizeof(LinkList));
     12     if(!L)
     13     exit(0);
     14     L->next = NULL;
     15     L->data = 0; 
     16 }
     17 //尾插法 
     18 int PushBack(linklist &L) {
     19     linklist L1 = NULL;
     20     L1 = L ;
     21     char c = 'N';
     22     for( ; ; ){
     23     linklist q = NULL;
     24     CreateList(q);
     25     printf("请输入元素
    ");
     26     scanf("%d" , &(q->data));
     27     L1->next = q ;
     28     L1= q ;
     29     fflush(stdin);
     30     printf("是否继续输入Y/N");
     31     scanf("%c" , &c);
     32     fflush(stdin);
     33     if(c != 'Y')
     34     return 0;
     35     }
     36 }
     37 //头插法 
     38 int PushFront(linklist &L) {    
     39     char c = 'N';
     40     linklist p = NULL ;
     41 //    L1 = L ;
     42     p = L;
     43     for( ; ; ){
     44     linklist q = NULL ;
     45     CreateList(q);
     46     printf("请输入元素
    ");
     47     scanf("%d" ,  &(q->data));
     48     p = L->next;
     49     L->next = q ;
     50     q->next = p ;
     51     fflush(stdin);
     52     printf("是否继续输入Y/N");
     53     scanf("%c" , &c);
     54     fflush(stdin);
     55     if(c != 'Y')
     56     return 0;    
     57     }
     58 }
     59 //输出所有元素 
     60 void PrintfList(linklist &L) {
     61     linklist L1 = L ; 
     62     while(L1->next != NULL)
     63     {
     64     L1 = L1->next;
     65     printf("///%d///" , L1->data);
     66     }
     67     
     68 }
     69 
     70 int deleteList(linklist &L , int n) {
     71     if(L->next == NULL)
     72     return 0 ;
     73     linklist L1 = L ;
     74     while(L1->next->data != n)
     75         L1 = L1->next;
     76     L1->next = L1->next->next;
     77         
     78 }
     79 //两个有序链表归并 
     80 LinkList *MergeList(linklist &La , linklist &Lb ) {
     81     linklist L = NULL , l = NULL, la = La->next , lb = Lb->next;
     82     CreateList(L);
     83     l = L;
     84     while(lb && la){
     85     if(la->data >= lb->data){
     86         l->next = la ;
     87         l = l->next;
     88         la = la -> next;
     89     }
     90     else{
     91         l -> next = lb;
     92         l = l->next;
     93         lb = lb -> next;
     94     }
     95     }
     96     l->next = lb ? lb : la  ;   
     97     return L ;
     98 }
     99 //插入元素 
    100 int insertList(linklist &L , int n ,int data) {
    101     linklist L1 = L , q ;
    102     for(int i = 0 ; i < n , L1->next!=NULL ; i++ )
    103     {
    104         if(i = n-1)
    105         {
    106             CreateList(q);
    107             q ->data = data ;
    108             q->next = L1->next;
    109             L1->next = q;
    110             return n;    
    111         }
    112         L1 = L1 -> next;
    113     }
    114     return 0;
    115 }
    116 int main() {
    117     LinkList *q = NULL , *p = NULL ,*L = NULL;
    118     CreateList(q);
    119     PushFront(q);
    120     PrintfList(q);
    121     printf("
    ");
    122     CreateList(p);
    123     PushFront(p);
    124     PrintfList(p);
    125     L = MergeList(q , p );
    126     printf("
    ");
    127     PrintfList(L);
    128 //    deleteList(q , 3);
    129 //    PrintfList(q);
    130     
    131 } 
  • 相关阅读:
    Java 泛型
    face_recognition
    用于图像分割的卷积神经网络:从R-CNN到Mark R-CNN
    OpenCV探索
    基于深度学习的目标检测技术演进:R-CNN、Fast R-CNN、Faster R-CNN
    卷积神经网络CNN总结
    (4)Smali系列学习之Smali语法详解内部类
    log4j的配置信息
    C#的async和await
    Java魔法堂:String.format详解
  • 原文地址:https://www.cnblogs.com/duolaAbao/p/9426639.html
Copyright © 2011-2022 走看看