C语言 链表
来源:互联网 发布:墨西哥贩毒 知乎 编辑:程序博客网 时间:2024/05/21 23:00
#include "stdafx.h"#include <stdio.h>#include <stdlib.h>#include <malloc.h>#include <string.h>typedef struct LISTS{ int datas; LISTS *next;}lists;lists *creates_T(lists *head){ int i; lists *p; scanf("%d", &i); head = (lists*) malloc(sizeof(lists)); head->next = NULL; for (int j = 0; j < i; j++) { p = (lists*) malloc(sizeof(lists)); scanf("%d", &p->datas); p->next = head->next; head->next = p; } return head;}lists *creates_W(lists *head){ lists *p1, *p2; int i; head = (lists*) malloc(sizeof(lists)); p1 = head; scanf("%d", &i); for (int J = 0; J < i; J++) { p2 = (lists*) malloc(sizeof(lists)); scanf("%d", &p2->datas); p1->next = p2; p1 = p2; } p1->next = NULL; return head;}void printfs(lists *head){ lists *p; p = head->next;//因为是头插法,有头结点 但是头结点是不能要数据的 所以要next //printf("打印\n"); while (p) { printf(" %d", p->datas); p = p->next; } printf("\n");}void inserthead(lists *head)//插入到表头 { lists *p; p = (lists*) malloc(sizeof(lists)); p->datas = 5; p->next = head->next; //头指针的作用 head->next = p;}void inserttaile(lists *head)//插入到表尾 { lists *p1, *p2; p2 = head; p1 = (lists*) malloc(sizeof(lists)); p1->datas = 5; while (p2->next != NULL) { p2 = p2->next; } p1->next = NULL; p2->next = p1;}void insertother(lists *head){ int a, j = 0; scanf("%d", &a); lists *p1, *p2, *p3; p1 = head; p2 = (lists*) malloc(sizeof(lists)); p2->datas = 6; while (j < a - 1) { p1 = p1->next; j++; } p3 = p1->next; p1->next = p2; p2->next = p3;}void deletehead(lists *head){ lists *p; p = head->next; head->next = head->next->next; free(p);}void deletetail(lists *head){ lists *p2; while (head->next != NULL) { p2 = head; head = head->next; } p2->next = NULL; free(head);}void deleteother(lists *head){ int a, j; scanf("%d", &a); lists *p1, *p2; p1 = head; for (j = 0; j < a - 1; p1 != NULL) { j++; p1 = p1->next; } p2 = p1->next; p1->next = p2->next; free(p2);}void deletesum(lists *head){ lists *p, *q; p = head; int a; scanf("%d", &a); while (p->next != NULL) { if (p->next->datas == a) { q = p->next; p->next = p->next->next; free(q); } else p = p->next; }}void repeat(lists *head){ lists *p, *q; p = head; while (p->next != NULL) { if (p->next->datas == p->datas) { q = p->next; p->next = p->next->next; free(q); } else p = p->next; }}void find(lists *head){ int j = 1; int a; lists *p; p = head->next; scanf("%d", &a); while (p&&j < a) { p = p->next; j++; } printf("%d\n", p->datas);}void select(lists *head){ int j = 0; int a; lists *p; p = head->next; scanf("%d", &a); while (p != NULL) { j++; if (p->datas == a) printf("%d ", j); p = p->next; }}void update(lists *head){ int j = 1; int a; lists *p; p = head->next; scanf("%d", &a); while (p&&j < a) { p = p->next; j++; } p->datas = 222;}lists *join(lists *head, lists *head1, lists *head2){ lists *p = head1->next, *q = head2->next, *r = head; while (p != NULL) { r->next = p; r = p; p = p->next; } while (q != NULL) { r->next = q; r = q; q = q->next; } return head;}void sort_M(lists *head){ lists *p, *q, *temp; temp = (lists*) malloc(sizeof(lists)); for (p = head; p != NULL; p = p->next) { for (q = p->next; q != NULL; q = q->next) { if (p->datas > q->datas) { temp->datas = q->datas; q->datas = p->datas; p->datas = temp->datas; } } }}void compare(lists *head1, lists *head2){ lists *a,*b; a = head1->next; b = head2->next; int array [10]; int flags=0; while (a!= NULL&&b!=NULL) { if (a->datas == b->datas) { flags++; printf("位置是--->%d\n", flags); } else exit(1); b = b->next; }}int main(){ lists *head1 = (lists*) malloc(sizeof(lists)); lists *head2 = (lists*) malloc(sizeof(lists)); lists *head = (lists*) malloc(sizeof(lists)); head1 = creates_W(head1); //printf("1--->"); printfs(head1); head2 = creates_W(head2); //printf("2--->"); printfs(head2); compare(head1,head2);}
0 0
- c语言 链表
- 链表(C语言)
- c 语言 链表
- C语言:链表
- C语言:链表
- C语言-链表
- C语言 链表
- 链表c语言实现
- c语言 链表 删除
- C语言数据结构----链表
- c语言 链表
- C语言 之 链表
- C语言 链表
- C语言_链表
- C语言-链表
- C语言 链表
- 链表(C语言)
- C语言-链表
- USACO2.4.1 The Tamworth Two (ttwo)
- C#中如何捕捉对话框的文本内容
- UVA 10304 Optimal Binary Search Tree (区间dp)
- uva 1335 - Beijing Guard
- Android 解压html压缩数据
- C语言 链表
- 南阳62 笨小熊
- 设计模式之Decorator(油漆工)
- centos防火墙添加端口8080 版本2.6.32-279.el6.x86_64
- 在 Linux 平台下安装 DB2 Express C
- android高手之路之Android Widget
- short s1=1;s1=s1+1;为什么是错的.而s1+=1;为什么不报错
- CCS+C6678LE开发记录07:DSP网页测试
- 数组作为value存入可变字典