// 链表.cpp: 定义控制台应用程序的入口点。
#include "stdafx.h"
#include "stdio.h"
#include "malloc.h"
typedef int elemtype;
typedef struct node{
elemtype data;
struct node *next;
}LinkList;
//写入数据 x值 t位置
int Add(LinkList *hand,LinkList *p,int x,int t) {
//头插法
p = (LinkList *)malloc(sizeof(LinkList)); //申请空间
p->data = x;
p->next = hand->next;
hand->next = p;
return 1;
}
//写入结束
//打印开始
int Prints(LinkList *hand) {
LinkList *t = hand->next;
while (t!=NULL) {
printf("%3d", t->data);
t = t->next;
}
return 1;
}
//打印结束
//查询开始
int Fond(LinkList *hand, int data, int p) {
LinkList *t = hand->next;
if (p == 0) {
int z = 0;//判断是否查询出结果
for (int i = 0; t->next != NULL; i++) {
if (i == data-1) {
z++;
return t->data;
}
t = t->next;
}
if (z == 0) { printf("\n你输入的位置不正确\n"); return 0; }
}else if (p == 1) {
int z = 0;
for (int i = 0; t->next != NULL; i++) {
if (t->data == data) {
z++;
return i+1;
}
t = t->next;
}
printf("\n你查询的值不纯在\n");
return 0;
}
}
//查询结束
//删除开始
int Delets(LinkList *hand,int data) {
LinkList *t = hand->next;
int z = 0;
for (int i = 0; t->next != NULL; i++) {
if (i == data - 1) {
z++;
t->data = t->next->data;
t->next = t->next->next;
return 1;
}
t = t->next;
}
return 1;
}
//删除结束
//查询长度开始
int Longs(LinkList *head) {
int z = 1;
LinkList *t = head->next;
for (int i = 0; t->next != NULL; i++) {
z++;
t = t->next;
}
return z;
}
//查询长度结束
int main()
{
//初始化
LinkList *hand, *p;
hand = (LinkList *)malloc(sizeof(LinkList));
hand->next = NULL;
// 写入数据
p = (LinkList *)malloc(sizeof(LinkList));
Add(hand, p, 10, 0);
Add(hand, p, 20, 0);
Add(hand, p, 30, 2);
Add(hand, p, 40, 0);
Add(hand, p, 50, 0);
//读取数据
Prints(hand);
//查询数据
int a, b;
printf("\n请输入你的查询方法\n0为按位置查值\n1为按值查位置\n");
again:scanf_s("%d", &a);
if (a == 0) {
printf("请输入位置\n");
scanf_s("%d", &b);
printf("%d\n", Fond(hand, b, a));
}else if (a == 1) {
printf("请输入值\n");
scanf_s("%d", &b);
Fond(hand, b, a);
printf("%d", Fond(hand, b, a));
}else {
printf("输入错误请重新输入\n");
goto again;
}
//删除数据
printf("\n请输入你的删除的位置\n");
scanf_s("%d", &b);
Delets(hand, b);
Prints(hand);
//查询长度
printf("链表的长度为 %4d", Longs(hand));
return 0;
}
链表——c
最新推荐文章于 2024-04-15 20:18:40 发布