링크 기본 조작 실현 (c 언어)

#include 
#include 
typedef int ElemType;
typedef struct node
{

    ElemType data;
    struct node*next;
}*linkList,linkNode;

//     
linkList initLinkList()
{
    linkList head=(linkList)malloc(sizeof(linkNode));
    if(!head)
    {
        printf("        !
"); exit(0); } head->next=NULL; printf(" !
"); return head; } // void creatLinkList(linkList l,int a[],int n) { int i; linkList p,q; q=l; for(i=0; idata=a[i]; p->next=q->next; q->next=p; q=p; } printf(" !
"); } // void printLinkList(linkList head) { linkList p=head->next; printf(" :
"); while(p) { printf("%d ",p->data); p=p->next; } printf("
"); } // int linkListFind(linkList head,int data) { linkList p=head->next; int i=0; while(p) { i++; if(p->data==data) return i; p=p->next; } return 0; } // int linkListInsert(linkList head,int data1,int data2) { linkList p=head->next,q; while(p) { if(p->data==data1) { q=(linkList)malloc(sizeof(linkNode)); q->data=data2; q->next=p->next; p->next=q; return 1; } p=p->next; } return 0; } // int linkListDelete(linkList head,int data) { linkList p=head,q; while(p->next) { if(p->next->data==data) { q=p->next; p->next=q->next; free(q); return 1; } p=p->next; } return 0; } // int isEmpty(linkList head) { if(!head->next) { return 1; } return 0; } // int linkListClear(linkList head) { if(head->next) { head->next=NULL; return 1; } return 0; }// int linkListDestory(linkList head) { if(head) { linkList p=head->next,q; while(p) { q=p->next; free(p); p=q; } free(head); return 1; } return 0; } // int linkListLength(linkList head) { int i=0; linkList p=head->next; while(p) { i++; p=p->next; } return i; } // int nextElem(linkList head,ElemType e) { linkList p=head->next; while(p) { if(p->data==e) { if(p->next) return p->next->data; else return -1; } p=p->next; } return 0; } // int priorElem(linkList head,ElemType e) { linkList p=head; while(p->next) { if(p->next->data==e) { if(p!=head) { return p->data; } else { return -1; } } p=p->next; } return 0; } // index int getElem(linkList head,int index) { linkList p=head->next; int i=0; while(p) { i++; if(i==index) { return p->data; } p=p->next; } return 0; } int main() { linkList head=initLinkList(); int length; if(isEmpty(head)) { length=linkListLength(head); printf(" , %d
",length); } int n,a[100],i; printf(" n:
"); scanf("%d",&n); printf(" %d :
",n); for(i=0; i

좋은 웹페이지 즐겨찾기