c语言无头链表的录入 查看 插入 删除
来源:互联网 发布:arch linux kde 编辑:程序博客网 时间:2024/06/03 23:07
.c文件
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <Point.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
point *head=NULL;
int row,col;
point *p,*q;
product(&head); //录入
showpoints(head);//查看
printf("请输入要删除的坐标:\n");
scanf("%d %d",&row,&col);
deletepoint(&head,row,col);//删除
showpoints(head);//查看
return 0;
}
.h文件
#ifndef _POINT_
#define _POINT_
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define length sizeof(point)
typedef struct point
{
int row;
int col;
struct point *next;
} point;
void product(point **head);
void product(point **head)
{
point *p,*q;
int row,col,n=0;
if(*head)
{
printf("你已经完成了录入");
}
else
{
*head=p=q=NULL;
p=q=(point *)(malloc(length));
printf("请输入有效点的坐标:\n");
scanf("%d%d",&q->row,&q->col);
while(q->row&&q->col)
{
n++;
if(n==1)
{
*head=q;
}
else
{
p->next=q;
}
p=q;
q=(point *)(malloc(length));
printf("请输入有效点的坐标:\n");
scanf("%d %d",&q->row,&q->col);
}
p->next=NULL;
}
}
void showpoints(point *head);
void showpoints(point *head)
{
point *p;
printf("你输入的点的坐标如下:\n");
p=head;
do
{
printf("%d,%d\n",p->row,p->col);
p=p->next;
}
while(p!=NULL);
}
void deletepoint(point **head, int row,int col);
void deletepoint(point **head, int row,int col)
{
point *p = *head;
point *q = NULL;
if (p->row==row&&p->col==col)
{
*head = p->next;
free(p);
return;
}
else
{
while (p!= NULL)
{
q =p;
p= p->next;
if (p==NULL)
{
printf("\n------------未找到要删除的或已删除多个该坐标----------------\n\n");
return;
}
else if (p->row==row&&p->col==col)
{
q->next = p->next;
free(p);
p=*head;
}
}
}
}
#endif _POINT_
- c语言无头链表的录入 查看 插入 删除
- c语言 单链表的插入与删除
- c语言单链表的创建、插入、删除
- objecttive-C语言使用二叉排序树实现查找、插入、删除、查看元素
- C语言链表的插入和删除、建立
- 经典算法:红黑树的C语言实现 ( 插入 、删除 )
- C语言链表的建立、插入和删除
- C语言---单链表的插入、删除、查找操作
- C语言---双向链表的插入、删除、查找操作
- C语言---双向链表的插入、删除、查找操作
- C语言顺序表的插入、删除、查找操作实现
- c语言链表的创建、插入、删除、排序
- C语言:线性顺序结构(数组)的插入,删除
- C语言:循环双链表的创建,插入,删除
- C语言单链表的创建,插入,删除,逆致
- C语言实现链表节点的插入和删除
- C语言实现链表节点的插入和删除
- 顺序链表的插入删除等操作 C语言
- f7-Vue Tabbar
- _beginthreadex创建多线程
- PHP之301重定向设置代码
- 1116 K进制下的大数
- 【maven之三】使用maven插件来分析jar包之间的依赖关系
- c语言无头链表的录入 查看 插入 删除
- applicationid和包名的区别
- 题目1122:吃糖果
- FastJSON 简单使用
- PHP防止多次请求刷红包的方法
- 增加搜索引擎友好度的页面布局设计思路
- YAML 基础语法
- c++中的左值与右值
- 十年