删除元素 不存在 NO 存在 输出余下元素

#include<stdio.h>
#include<stdlib.h>
#define N 5
#define NULL 0
#define OK 1
#define ERROR 0
typedef struct LNode
{
    int data;
    struct LNode *next;
}LNode,*list;

void creatList(list &l,int n)
{
    list p,q;
    l=(list)malloc(sizeof(LNode));
    p=l;
    for (int i=0;i<n;i++)
    {
        q=(list)malloc(sizeof(LNode));
        scanf("%d",&q->data);
        p->next=q;
        p=q;
    }
    p->next=NULL;
}
int insertDeleteList(list l,int e)
{
    list p,q;
    p=l->next;
    q=l;
    while (p)
    {
        if (p->data==e)
        {
            while (q->next!=p) q=q->next;
            q->next=p->next;
            free(p);
            return OK;

        }
        p=p->next;
    }
    return ERROR;
}
void printList(list l)
{
    list p;
    p=l->next;
    while (p)
    {
        printf("%d ",p->data);
        p=p->next;
    }
}
int main()
{
    list l;
    int e;
    printf("创建%d个元素的链表,请输入%d个元素:\n",N,N);
    creatList(l,N);
    printf("请输入要判断的元素");
    scanf("%d",&e);
    if (!insertDeleteList(l,e))
        printf("NO ");
    else
        printList(l);
}

#include<stdio.h>

#include<stdlib.h>

#define N 5

#define NULL 0

#define OK 1

#define ERROR 0

typedef struct LNode {

int data;

struct LNode *next;

}LNode,*list;

void creatList(list &l,int n)

{     list p,q;

l=(list)malloc(sizeof(LNode));

p=l;

for (int i=0;i<n;i++)

{         q=(list)malloc(sizeof(LNode));

scanf("%d",&q->data);

p->next=q;

p=q;

}

p->next=NULL;

}

int insertDeleteList(list l,int e)

{     list p,q;

p=l->next;

q=l;

while (p)

{         if (p->data==e)

{             while (q->next!=p)

q=q->next;

q->next=p->next;

free(p);

return OK;

}

p=p->next;

}

return ERROR;

}

void printList(list l)

{     list p;

p=l->next;

while (p)

{         printf("%d ",p->data);

p=p->next;     }

}

int main()

{     list l;

int e;

printf("创建%d个元素的链表,请输入%d个元素:\n",N,N);

creatList(l,N);

printf("请输入要判断的元素");

scanf("%d",&e);

if (!insertDeleteList(l,e))         printf("NO ");

else         printList(l);

}

时间: 2024-10-28 20:53:29

删除元素 不存在 NO 存在 输出余下元素的相关文章

list双向链表容器应用基础(创建、遍历、插入、删除、归并、排序及连续重复元素剔除等)

不同于采用线性表顺序存储结构的vector和deque容器,list双向链表中任一位置的元素差值.插入和删除,都具有高效的常数阶算法时间复杂度O(1). 头文件 #include<list> 创建list对象 1)list();//创建一个没有任何元素的list对象. list<int>l 2)list(size_type n);//创建一个具有n个元素的list对象,每个元素采用它的类型下的默认值. list<int>l(10);//list对象l有10个元素,每个元

遍历输出tuple元素的简洁方式(C++11)

//遍历输出tuple元素的简洁方式(C++11) //Win32Con17_VS2017_01.cpp #include <iostream> #include <tuple> using namespace std; template<typename... Args> void myprint_impl(tuple<Args...> tup) //泛化版本 { cout << tup._Myfirst._Val << ((tup

编写程序输入一个5x5的矩阵,将最大元素与中心元素交换,并按行列对齐输出。

编写程序输入一个5x5的矩阵,将最大元素与中心元素交换,并按行列对齐输出. 题目描述 编写程序输入一个5x5的矩阵,将最大元素与中心元素交换,并按行列对齐输出. 输入描述 编写程序输入一个5x5的矩阵 输出描述 将最大元素与中心元素交换,并按行列对齐输出. 样例输入 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 样例输出 1 2 3 4 5 6 7 8 9 10 11 12 25 14 15 16 17 18

php获取并删除数组的第一个和最后一个元素

php中如何获取并删除数组的第一个或者最后一个元素?其实这两个过程都可以通过php自带的函数 array_pop 和 array_shift 来完成,下面就具体介绍一下如何来操作.(1)使用 array_pop 删除数组的最后一个元素,例如:$arr=array('a','b','c');$result=array_pop($arr);print_r($result);print_r($arr);结果将是:carray('a','b') (2)使用 array_shift 删除数组的第一个元素,

判断 a 和 b 里面元素是否一致:一致输出True,否则输出False

a = "abcd31d111111" b = "3acdb1" 这道题在网上也有很多的答案了,以下代码仅为抛砖引玉. 我这里简单的说下我的想法: 分析: 判断元素是否相同,判断组成的元素是否一致,也就是重复的元素按一次计算就可以了 方法1: 使用集合的方式 a = "abcd31d111111" b = "3acdb1" print(set(a) == set(b)) 方法2: 使用all() 1.先判断长度 2.使用pyt

block(块级元素)和 inline(内联元素) 的区别

<td style="word-break:break-all"> 强制换行 <td  style="width:80px;display:block;boverflow: hidden;">超出隐藏,注意要设置宽度. 内联转化为块状:display:block 或 float:left / right 块状转化为内联:display:inline; 但是要注意内联元素是不能设置宽度和高度的.那就要强制把内联元素转换为块级元素了 div这样的

JAVA生成一个二维数组,使中间元素不与相邻的9个元素相等,并限制每一个元素的个数

示例如下 至少需要九个元素:"A","B","C","D","E","F","G","H","I" 我们打印一个30*15的二维数组 刚好限制每一个元素出现50次 I D H A C F E G B E F C B I A G A E D H I B F H G D G H C E D F I B C A C G D B I A

js Dom(三)节点、元素创建3种方式、为元素绑定多个事件addEventListener、attachEvent

目录: 1.节点的概念    2.节点的属性(nodeType,nodeName,nodeValue)    3.父节点(父元素)    4.获取子节点或子元素    5.获取节点.元素的方法(12行代码)    6.案例:div标签里面的p标签背景高亮(使用子节点或子元素的方式)    7.封装节点兼容代码    8.案例:切换背景图片    9.案例:全选.全不选    10.元素创建的第一种方式  document.write("<p>文本</P>"); 

将链表中的所有元素为奇数的节点移到元素为偶数节点的前面,并保证奇数之间顺序不变,偶数之间顺序不变。

2.将链表中的所有元素为奇数的节点移到元素为偶数节点的前面,并保证奇数之间顺序不变,偶数之间顺序不变. 示例: 交换前链表的顺序             交换后链表的顺序 4→5→3→1→2   ==>  5→3→1→4→2 1 ==> 1                   (链表仅含一个元素) 2→1 ==>1→2 ==>         (链表为空) C/C++: 链表节点定义为: struct node { struct node *next; int value; };