您现在的位置是:主页 > news > 一个人做的网站做什么好/seo推广服务哪家好

一个人做的网站做什么好/seo推广服务哪家好

admin2025/5/10 16:29:29news

简介一个人做的网站做什么好,seo推广服务哪家好,网站台做计么呢,石家庄哪个公司做网站好1. 题目:有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位. 提示:用环形链表实现 #include <stdio.h> #include …

一个人做的网站做什么好,seo推广服务哪家好,网站台做计么呢,石家庄哪个公司做网站好1. 题目:有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位. 提示:用环形链表实现 #include <stdio.h> #include …

 

1. 题目:n个人围成一圈,顺序排号,从第一个开始报数(13报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位.                                                                                   

提示:用环形链表实现

 

#include <stdio.h>
#include <stdlib.h>
#define N 10struct node
{int num;struct node * next;
};
typedef struct node Node;
typedef struct node * Link;is_malloc_ok(Link new_node)
{if(new_node == NULL){printf("malloc error!\n");exit(-1);}
}void create_node(Link * new_node)
{*new_node = (Link)malloc(sizeof(Node));is_malloc_ok(*new_node);
}void create_link(Link * head)
{create_node(head);(*head)->next = *head;}void insert_node_tail(Link head, Link new_node)
{Link p;p = head;while(p->next != head){p = p->next;}p->next = new_node;new_node->next = head;
}void delete_3(Link head)
{int i;Link p;Link q;q = head;p = head;while(head->next->next != head){p = q;for(i = 0; i < 3; i++){if(p->next == head){p = p->next;}q = p;p = p->next;}q->next = p->next;free(p);}
}void display_link(Link head)
{Link p = NULL;p = head->next;while(p != head){printf("%5d", p->num);p = p->next;}printf("\n");
}int main()
{int i;Link head;Link new_node;create_link(&head);for(i = 0; i < N; i++){create_node(&new_node);new_node->num = i + 1;insert_node_tail(head, new_node);}delete_3(head);printf("the last people is:\n");display_link(head);return 0;
}

 

 

2. 题目:创建两个学生链表,含有姓名、年龄的信息,一个链表存放男生,一个链表存放女生

3. 题目:将上面两个链表合并,按学生的年龄进行排序,合成新的链表

4. 题目:将上题中建立的链表进行反转,实现按年龄的逆序排列

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>struct stu 
{int age;char name[20];struct stu * next;
};typedef struct stu Stu;
typedef struct stu * Link;void is_malloc_ok(Link new_node)
{if(new_node == NULL){printf("malloc error!\n");exit(-1);}
}void create_node(Link * new_node)
{*new_node = (Link)malloc(sizeof(Stu));is_malloc_ok(*new_node);
}void create_link(Link * head)
{create_node(head);(*head)->next = NULL;	
}void insert_node_tail(Link head, Link new_node)
{Link p = NULL;p = head;while(p->next != NULL){p = p->next;}p->next = new_node;new_node->next = NULL;
}void insert(Link head, char n[], int a)
{Link new_node = NULL;create_node(&new_node);new_node->age = a;strcpy(new_node->name, n);insert_node_tail(head, new_node);
}void display(Link head)
{Link p = NULL;p = head->next;if(p == NULL){printf("no people!\n");}while(p != NULL){printf("%s", p->name);printf("%5d", p->age);printf("\n");p = p->next;}printf("\n");
}void link(Link head1, Link head2)
{Link p = NULL;p = head1;if(head1->next == NULL){head1->next = head2;}while(p->next != NULL){p = p->next;}p->next = head2->next;
}void rank_age(Link head1)
{int between;char tmp[20];Link p = NULL;Link q = NULL;q = head1->next;p = head1->next;while(q->next != NULL){while(p->next != NULL){if((p->age) > (p->next->age)){between = p->age;p->age = p->next->age;p->next->age = between;strcpy(tmp, p->name);strcpy(p->name, p->next->name);strcpy(p->next->name, tmp);}p = p->next;}p = head1->next;q = q->next;}
}void reverse_list(Link head)
{Link p1 = NULL;Link p2 = NULL;Link p3 = NULL;p1 = head->next;if(p1 == NULL){;}else{p2 = p1->next;p3 = p2->next;if(p3 == NULL){p2->next = p1;p1->next = NULL;head->next = p2;}else{p2->next = p1;p1->next = NULL;while(p3 != NULL){p1 = p2;p2 = p3;p3 = p3->next;p2->next = p1;}head->next = p2;}}
}int main()
{Link head1;Link head2;create_link(&head1);create_link(&head2);insert(head1, "xiaoli", 12);insert(head1, "xiaowei", 13);insert(head1, "xiaoqiang", 10);insert(head1, "xiaolei", 14);printf("boys:\n");display(head1);insert(head2, "xiaohua", 14);insert(head2, "xiaozi", 9);insert(head2, "xiaotao", 10);insert(head2, "xiaolian", 12);printf("girls are:\n");display(head2);link(head1, head2);printf("boys and girls are:\n");display(head1);rank_age(head1);printf("rank by age is:\n ");display(head1);reverse_list(head1);printf("the boys and girls after reverse are:\n");display(head1);return 0;
}

 

 

5. 题目:在上面的实现的新链表中,给定一个年龄,迅速查找和该学生年龄最接近的学生姓名

提示:使用双向链表

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>struct stu
{int age;char name[20];struct stu * next;struct stu * prior;
};typedef struct stu Stu;
typedef struct stu * Link;void is_malloc_ok(Link new_node)
{if(new_node == NULL){printf("malloc error!\n");exit(-1);}
}void create_node(Link *new_node)
{*new_node = (Link)malloc(sizeof(Stu));is_malloc_ok(*new_node);
}void create_link(Link * head)
{create_node(head);(*head)->next = *head;(*head)->prior = *head;}void insert_node_head(Link head, Link new_node)
{/*Link p = head;while(p->next != head){p = p->next;}p->next = new_node;new_node->next = p;head->prior = new_node;new_node->prior = p;*/new_node->prior = head;new_node->next = head->next;head->next = new_node;new_node->next->prior = new_node;}void insert_list(Link head, char name[], int n)
{Link new_node;create_node(&new_node);strcpy(new_node->name, name);new_node->age = n;insert_node_head(head, new_node);}void display_list(Link head)
{Link p;p = head;while(p->next != head){p = p->next;printf("%s  %d\n", p->name, p->age);}printf("\n");}void find_list(Link head)
{int a[50] = {0};Link temp = NULL;temp = head->next;int age = 0;int i = 0;int j = 0;int num = 100;int match = -1;printf("输入年龄: ");scanf("%d", &age);while(temp != head){a[i] = (temp->age) - age;temp = temp->next;if(a[i] < 0){a[i] = 0 - a[i];}i++;}for(j = 0; j < i; j++){if(a[j] < num){num = a[j];match = j;}}temp = head->next;for(j = 0; j < match; j++){temp = temp->next;}printf("最匹配的同学:%s\n", temp->name);
}int main()
{Link head;create_link(&head);insert_list(head, "change", 9);insert_list(head, "zixia", 10);insert_list(head, "wuyue", 10);insert_list(head, "tiantian", 11);insert_list(head, "qinqin", 12);display_list(head);find_list(head);return 0;
}

 

 

6. 题目:利用链表实现一个先入后出的栈结构,并提供栈操作的pushpop的接口

 

#include <stdio.h>
#include <stdlib.h>
#define N 5struct stack
{int stack_text;struct stack * next;
};typedef struct stack Stack;
typedef struct stack * Link;void is_malloc_error(Link new_node)
{if(new_node == NULL){printf("malloc error!\n");exit(-1);}
}void create_node(Link * new_node)
{*new_node = (Link)malloc(sizeof(Stack));is_malloc_error(*new_node);
}void create_link(Link * head)
{create_node(head);(*head)->next = *head;
}void push_stack(Link head, Link new_node)
{new_node->next = head->next;head->next = new_node;printf("push ok!\n");
}void pop_stack(Link head, Link new_node)
{Link q = head;Link p = head;while(head->next != p){q = p;p = p->next;}printf("pop %d\n", p->stack_text);q->next = p->next;free(p);p = q->next;
}int main()
{int i;Link head = NULL;Link new_node = NULL;create_link(&head);for(i = 0; i < N; i++){create_node(&new_node);new_node->stack_text = i + 1;push_stack(head, new_node);}for(i = 0; i < N; i++){pop_stack(head, new_node);}return 0;
}