링크 의 기본 조작

질문 및 코드:
/*
 *copyright(c) 2016         
 *All rights reserved
 *    :test.cpp
 *  :  
 *  :v6.0
 *
 *    :       
 *    : 
 *    :
*/


#include <stdio.h>
#include <stdlib.h>
typedef char ElemType;
typedef struct Node
{
    ElemType data;
    struct Node *next;
} SqList;
void InitList(SqList *&L)  //    
{
    L=(SqList*)malloc(sizeof(SqList));
    L->next=NULL;
}
void Insert(SqList *&L,ElemType n)  //  n
{
    SqList *p=L,*q;
    while(p->next!=NULL)
        p=p->next;
    q=p;
    p=(SqList*)malloc(sizeof(SqList));
    q->next=p;
    p->data=n;
    p->next=NULL;
}
void Print(SqList *L)   //    
{
    SqList *p=L->next;
    while(p->next!=NULL)
    {
        printf("%c ",p->data);
        p=p->next;
    }
    printf("%c
",p->data); } void PrintLength(SqList *L) // { int i=0; SqList *p=L->next; while(p!=NULL) { i++; p=p->next; } printf("%d
",i); } bool SqNull(SqList *L) // { if(L->next!=NULL)return true; else return false; } void PrintData(SqList *L,int n) // n { SqList *p=L->next; int i; for(i=0; i<n-1&&p->next!=NULL; i++) p=p->next; printf("%c
",p->data); } int Find(SqList *L,ElemType a) // a { SqList *p=L->next; for(int i=0; p!=NULL; i++) if(p->data==a)return i+1; return 0; } void Insertinto(SqList *&L,int n,ElemType f) // f n { SqList *p=L->next,*q; for(int i=1; p!=NULL; i++) { if(i==n-1) { q=(SqList*)malloc(sizeof(SqList)); q->data=f; q->next=p->next; p->next=q; } p=p->next; } } void Delete(SqList *&L,int n) // { SqList *p=L->next,*q; for(int i=1; p!=NULL; i++) { if(i==n-1) { q=p->next; p->next=p->next->next; free(q); } p=p->next; } }

좋은 웹페이지 즐겨찾기