C 구현 링크

typedef struct NODE
{
    int data;//   
    struct NODE * next;//   
}* Node;
//     
Node create_listNode();
//  
void traverse_listNode(Node node);
//      
bool is_empty(Node node);
//    
int lenth_list(Node node);
//  (  ,  ,    )
void insert_list(Node node ,int index,int data);
//  (  ,  ,         )
void delete_list(Node node ,int index, int *pData);
//  
void sort_list(Node node);

int main(int argc, const char * argv[]) {

    Node node = NULL;
    node = create_listNode();
    traverse_listNode(node);
    
    if (is_empty(node)) {
        printf("    
"); } else { printf("
"); } printf(" :%d
",lenth_list(node)); // sort_list(node); // traverse_listNode(node); // insert_list(node, 0, 6); delete_list(node, 2, NULL); traverse_listNode(node); return 0; } // Node create_listNode() { int len;// int val;// // Node head = (Node)malloc(sizeof(Node)); if (head == NULL) { printf(" "); exit(-1); } // Node tail = head; // tail->next = NULL; printf(" :len - "); scanf("%d",&len); for (int i = 0; i < len; i++) { printf(" %d :",i); scanf("%d",&val); Node new = (Node)malloc(sizeof(Node)); if (new == NULL) { printf(" "); exit(-1); } new->data = val; tail->next = new; new->next = NULL; tail = new; } return (head) ; } // void traverse_listNode(Node node) { Node p = node->next; while (p != NULL) { printf("%d ",p->data); p = p->next; } printf("
"); } // bool is_empty(Node node) { // if (node->next == NULL) { return true; } return false; } // int lenth_list(Node node) { Node p = node->next; int len = 0; while (p != NULL) { len++; p = p->next; } return len; } // ( , , ) void insert_list(Node node ,int index,int data) { int i = 0; Node p = node; while (p != NULL && i < index - 1) { p = p->next; i++; } if (i > index - 1 || p == NULL) { printf(" "); exit(-1); } Node new = (Node)malloc(sizeof(Node)); if (new == NULL) { printf(" "); exit(-1); } new->data = data; Node q = p->next; p->next = new; new->next = q; } // ( , , ) void delete_list(Node node ,int index, int *pData) { int i = 0; Node p = node; while (p->next != NULL && i < index - 1) { p = p->next; i++; } if (i > index - 1 || p->next == NULL) { printf(" "); exit(-1); } Node q = p->next; pData = &q->data; p->next = p->next->next; free(q); q = NULL; } // void sort_list(Node node) { int i ,j; int len = lenth_list(node); Node p,q; for (i = 0 ,p = node->next; i < len - 1 ; i++,p = p->next) { for (j = i + 1,q = p->next; j < len; j++,q = q->next) { if (p->data > q->data) { int temp = p->data; p->data = q->data; q->data = temp; } } } }

demo 주소

좋은 웹페이지 즐겨찾기