MVC如何设置启动页

/* list.h */
#ifndef _LINKLIST_H
#define _LINKLIST_H

struct node {
    int data;
    struct node *next;
};

typedef struct node *ptr_to_node;
typedef struct node *position;
typedef struct node *list;

list create_list();
void insert(int x, list l, position p);
void insert_to_head(int x, list l);
void insert_to_tail(int x, list l);
position find_previous(int x, list l);
int is_last(position p, list l);
void delete(int x, list l);
void printl(list l);


#endif
/* list.c */
#include "list.h"
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>

list 
create_list()
{
    list l;
    l = malloc(sizeof(struct node));
    if(l == NULL)
    {
        perror("malloc error");
        exit(1);
    }
    l->next = NULL;

    return(l);
}

void 
insert(int x, list l, position p)
{
    position newnode;
    newnode = malloc(sizeof(struct node));

    if(newnode == NULL)
    {
        perror("malloc error");
        exit(1);
    }
    newnode->data = x;
    newnode->next = p->next;
    p->next = newnode;
}
void
insert_to_head(int x, list l)
{
    insert(x, l, l);
}
void
insert_to_tail(int x, list l)
{
    ptr_to_node nptr;

    nptr = l;
    while(nptr->next != NULL)
        nptr = nptr->next;
    insert(x, l, nptr);
}
position
find_previous(int x, list l)
{
    position p;
    
    p = l;
    while(p->next != NULL && p->next->data != x)
        p = p->next;

    return(p);
}
int
is_last(position p, list l)
{
    return(p->next == NULL);
}
void
delete(int x, list l)
{
    position p, tmpp;

    p = find_previous(x, l);

    if( !is_last(p, l))
    {
        tmpp = p->next; 
        p->next = tmpp->next;
        free(tmpp);
    }
}
void printl(list l)
{
    position p;
    
    p = l->next;
    while(p != NULL)
    {
        printf("%d->", p->data);
        p = p->next;
    }
    printf("NULL\n");
}
/* test.c */
#include "list.h"
#include <stdio.h>

int
main(void)
{    
    list l;
    l = create_list();
    printf("insert from list tail:\n");
    insert_to_tail(1, l);
    insert_to_tail(2, l);
    insert_to_tail(3, l);
    insert_to_tail(4, l);
    insert_to_tail(5, l);
    printl(l);
    printf("after delete 3:\n");
    delete(3, l);
    printl(l);

    putchar(\n);
    printf("insert from list head:\n");
    insert_to_head(1, l);
    insert_to_head(2, l);
    insert_to_head(3, l);
    insert_to_head(4, l);
    insert_to_head(5, l);
    printl(l);
    printf("after delete 3:\n");
    delete(3, l);
    printl(l);
}

 

编译运行:

MVC如何设置启动页,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。