C语言编写一个插入删除函数

C语言编写一个插入删除函数,第1张

一般呢,插入和删除函数是分开写的,还有分成两种存储结构,1.顺序表,2.链表,我给你一个我上数据结构时候写的链表的 *** 作,里面全都有,如果不会用,追问我

#include<stdio.h>

#include<malloc.h>

#include<Windows.h>

#include<conio.h>

#include<stdlib.h>

typedef struct

{

int data

struct LNode *next

}LNode

LNode *Listinit(LNode *L)//初始化链表返还头指针

{

L = (LNode *)malloc(sizeof(LNode))

if (!L)return 0

L->next = NULL

return L

}

int GetElem_L(LNode *L, int i, int *e)//取第i个元素

{

int j

LNode *p

p=L->nextj=1

while(p&&j<i)

{

p=p->next++j

}

if(!p||j>i) return 0//i超过表长

*e=p->data

return 1

}

int ListInsert_L(LNode *L, int i, int e)//插入数据元素

{

LNode *p1 = L,*p2=L

int j = 0

if (i-1 >LinkLength(L))

return 2

while(p1!=NULL &&j<i-1)

{

p1 = p1->next

j++

}

p2 = (LNode *)malloc(sizeof(LNode))

if (!p2)

return 0

p2->data = e

p2->next = p1->next

p1->next = p2

return 1

}

void ClearList(LNode *L)//重置为空表

{

LNode *p

while(L->next)

{

p=L->next

L->next=p->next

free(p)

}

}

void print_link(LNode *L)//输出函数

{

LNode *p = L

p = p->next

while (p != NULL)

{

printf("%5d", p->data)

p = p->next

}

}

int ListDlete_L(LNode *L, int i, int *e)//删除L中I,并用e返回

{

int j = 0

LNode *p1 = NULL, *p2 = NULL

p1 = L

while (p1->next != NULL &&j <i - 1)

{

p1 = p1->next

j++

}

if (p1->next == NULL || j >i - 1)

return 0

p2 = p1->next

p1->next = p2->next

free(p2)

return 1

}

int LinkLength(LNode *L)//链表的长度

{

int i = 0

LNode *p = L->next

while (p != NULL)

{

i++

p = p->next

}

return i

}

一、问题描述:从键盘输入一个字符给str和一个字符给c,删除str中的所有字符c并输出删除后的字符串str。

1、输入:第一行是一个字符串; 第二行是一个字符。

2、输出:删除指定字符后的字符串。

二、设计思路:

1、 同插入问题,定义两个字符数组a,b。以及标志删除位置的int型pos。

2、用gets函数输入数组a的值,并利用for循环将数组a copy到 数组b。

3、利用for循环,令pos位的数组b元素赋值到a。

三、实现代码如下:

四、编译并执行,运行结果如下:

扩展资料

gets()函数用来从标准输入设备(键盘)读取字符串直到换行符结束,但换行符会被丢弃,然后在末尾添加'\0'字符。其调用格式为:gets(s),其中s为字符串变量(字符串数组名或字符串指针)。

gets()函数读取到\n(我们输入的回车)于是停止读取,但是它不会把\n包含到字符串里面去。然而,和它配合使用的puts函数,却在输出字符串的时候自动换行。

gets(s) 函数中的变量s为一字符串指针。如果为单个字符指针,编译连接不会有错误,但运行后内存溢出错误。宽字符版本,当使用unicode宽字符文本时,使用这个函数 _getws()在C11标准中被删除,可用C标准库中的fgets代替.

参考资料:百度百科 gets


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11744985.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存