`

链表的建立,插入,删除,查找(1)

 
阅读更多

磨磨蹭蹭弄完了,效果还行@!

#include<stdio.h>
#include<stdlib.h>
typedef struct No{
int date;
No* next;
} Node;
//////////////链表的建立///////////////
Node* creat(int n)
{
Node *head=NULL,*p,*tail;
int i;
for(i=0;i<n;i++){
p=(Node*)malloc(sizeof(Node));
scanf("%d",&p->date);
p->next=NULL;
if(head==NULL)
tail=head=p;
else{
tail->next=p;
tail=p;
}
}
return head;
}
/////////////链表的输出////////////////
void print(Node* head)
{
Node* p=head;
while(p!=NULL){
printf(p->next==NULL?"%d/n":"%d ",p->date);
p=p->next;
}
}
////////////链表的查找/////////////////
Node* lookup(Node* head,int a)
{
Node *p=head;
while(p!=NULL){
if(p->date==a)
return p;
p=p->next;
}
return NULL;
}
////////////链表的插入//////////////////
Node* insert(Node *head,int a,int j,int &n)
{
Node *p,*q=head,*tail;
p=(Node*)malloc(sizeof(Node));
p->date=a;
p->next=NULL;
int i=0;
if(j==0){
p->next=q;
head=p;
n++;
return head;
}
else{
i++;
while(i!=j){
q=q->next;
i++;
}
if(i==n)
q->next=p;
else {
p->next=q->next;
q->next=p;
}
n++;
return head;
}
}
/////////////链表的删除///////////////
void delet(Node *head)
{
Node *p=head,*q;
while(p!=NULL){
q=p;
p=p->next;
free(q);
}
}
main()
{
int n,x,j;
Node *head,*p;
printf("*******************/n建立链表/nEnter n:");
scanf("%d",&n);
putchar('/n');
printf("Enter n integers:/n");
head=creat(n);
putchar('/n');
print(head);
printf("********************/n链表的插入/nEnter j and x:/n");
scanf("%d%d",&j,&x);
head=insert(head,x,j,n);
print(head);
putchar('/n');
printf("*********************/n链表的查找/nEnter the integer you want to look up:");
scanf("%d",&x);

p=lookup(head,x);
if(p==NULL)
printf("Threr is no integer you need!/n");
else
printf("p->date is %d/n",p->date);
delet(head);
return 0;
}



<!-- 日志内容 结束 --><!-- 日志来源 开始 --><!-- 日志来源 结束 --><!-- 日志信息 开始 -->
分享到:
评论

相关推荐

    双向链表的插入、删除、查找

    这是一个关于双向链表的建立、头部插入、尾部插入、查找元素、删除元素的完整程序。

    线性链表的删除插入查找示例

    一个集合线性链表插入查找删除等功能的源代码,适合初学者自学与理解,这是我自己写的上交作业

    c++对链表建立,查找,删除处理

    在这个"c++对链表建立,查找,删除处理"的主题中,我们将深入探讨如何使用C++实现链表的创建、查找、删除和打印等操作。 首先,让我们从链表的基本结构开始。链表由一系列节点组成,每个节点包含两个部分:数据域和...

    链表的基本操作插入查询删除

    建立插入函数,用于在链表中有序地插入输入的一个元素 建立删除函数,用于在链表中删除指定的元素 建立主函数,在主函数中写一个菜单,根据用户选择不同的功能,调用不同的 函数,从而实现不同的功能

    建立双向链表实现对双向链表的插入删除操作1参考.pdf

    建立双向链表实现对双向链表的插入删除操作 在计算机科学中,链表是一种常用的数据结构,它可以用来存储和管理大量的数据。链表的优点是可以动态地增加或删除节点,从而实现对数据的灵活管理。在本文中,我们将介绍...

    双向链表的各种操作(包括建立,插入,删除,查找等)源代码

    双向链表的各种操作(包括建立,插入,删除,查找等)源代码

    链表的创建-插入-删除(数据结构 c编译)

    ### 数据结构C语言编程:链表的创建、插入与删除 #### 一、链表的基本概念 链表是一种常见的线性表存储结构,它通过一组任意的存储单元来存储线性表中的数据元素。每个存储单元称为一个节点(node),每个节点包含两...

    链表 的基本操作 插入删除等,本次主要更新的是建立递增链表

    - 使用尾插法建立链表,这样可以避免在链表中间插入节点时频繁地更新指针。 - 当链表很大时,顺序遍历可能会较慢,可以考虑使用二分查找法来提高插入效率。 - 删除节点时,如果直接保存前一个节点的引用,可以避免在...

    链表建立,插入,删除,打印操作(C语言实验,指针,结构体)

    包含链表的建立,插入,删除,查找操作,结构清晰,指针及结构体运用灵活,针对性强,有助于对C语言的深入理解

    用插入方式建立线性链表,实现插入、查找、删除、计数、输出、排序、逆置函数[归类].pdf

    "用插入方式建立线性链表,实现插入、查找、删除、计数、输出、排序、逆置函数" 在计算机科学中,链表是一种常用的数据结构。链表由一系列节点组成,每个节点都包含了数据和指向下一个节点的指针。链表的优点是可以...

    单链表的建立查找插入删除.doc

    "单链表的建立查找插入删除" 本实验报告的主要目的是通过建立单链表,实现链表的创建、查找、插入和删除操作。单链表是一种基本的数据结构,它可以动态地申请空间,可以快速地删除节点和增添节点。 一、实验目的 ...

    C语言实现带头结点的链表的创建、查找、插入、删除操作

    这种设计方便了链表的操作,尤其是对链表的创建、查找、插入和删除。 1. **链表的创建**: 在C语言中,创建链表首先需要定义一个结构体来表示链表节点,包含数据域`data`和指向下一个节点的指针`next`。创建带头...

    线性表的基本算法(插入、删除、建立、查找)

    根据给定文件的信息,本文将详细介绍线性表中的两种主要实现方式:顺序表与链表,并深入探讨这两种数据结构的基本算法——插入、删除、建立、查找。这些操作是线性表中最基本也是最重要的功能,对于理解和掌握数据...

    sss.rar_sss_双向链表_链表_链表 插入

    双向链表的尾插法建立 尾插法是在链表末尾添加新节点的方法。首先,我们需要找到当前链表的最后一个节点,然后将新节点的前一个指针指向这个尾节点,将尾节点的后一个指针指向新节点。这样可以确保链表的顺序正确...

    动态链表的建立

    5. **删除节点**:删除节点涉及到查找要删除的节点,然后修改前后节点的链接关系以保持链表的连续性。如果删除的是头节点,需要更新头节点。 6. **调试**:在实现动态链表操作后,调试是确保代码正确性的关键步骤。...

    建立带有头结点的链表

    链表中有三种基本操作:插入、删除和查找。 * 插入:在链表中插入一个新的结点,例如添加一个新的数据记录。 * 删除:从链表中删除一个结点,例如删除一个数据记录。 * 查找:在链表中查找一个特定的结点,例如查找...

    链表的建立、插入、删除

    ### 链表的建立、插入、删除 #### 一、链表基础知识 在计算机科学中,链表是一种常见的线性数据结构,它通过一系列节点(Node)来存储数据元素,每个节点通常包含两个部分:数据域(Data Field)用于存放实际的...

    顺序链表的建立和使用

    根据给定的信息,本文将对“顺序链表的建立和使用”进行详细的解析与说明,主要涵盖以下几个方面:链表的基本概念、链表的结构定义、链表的基本操作(包括初始化、插入、追加、删除、查找等)以及示例程序的分析。...

Global site tag (gtag.js) - Google Analytics