扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
#include stdio.h
成都创新互联公司是专业的平定网站建设公司,平定接单;提供做网站、成都网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行平定网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
#include malloc.h
#include conio.h
typedef struct node //定义节点
{
int value;
struct node* next;
}note;
note* head = NULL;
void del (note** head, int k)//删除链表
{
note* pp;
note* pt;
note* pq;
pp = *head;
if ((*head)-value == k)//如果头结点的值等于k,删除头结点
{
*head = (*head)-next;
return;
}
while(pp-value != k)
{
pt = pp;
pq = pp-next;
pp = pq;
}
pt-next = pp-next;//删除结点
}
void insert(note** head, int q)//建立链表
{
note* pp;
note* pt;
note* p = (note*)malloc(sizeof(note));
p-value = q;
p-next = NULL;
pp = *head;
if (*head==NULL)
{
*head=p;
return;
}
while(pp-next!=NULL)
{
pt = pp-next;
pp = pt;
}
pp-next = p;
}
void print(note* head)//打印链表
{
note* pp;
while(head!=NULL)
{
printf("%d ", head-value);
pp = head-next;
head = pp;
}
}
int main()
{
int i;
int n,k,value;
scanf("%d %d",n, k);
for(i=0; in; i++)
{
scanf("%d", value);
insert(head, value); //把head的地址传过去
}
del(head, k);
print(head);
getch();//随意按个键退出界面
return 0;
}
delete是和new一起使用的,如果要使用delete的话意味意着你前面创建链表的时候有使用new创建每一个节点。如果前面没有new的话后面就不能使用delete。
C语言删除数组指定元素的源代码如下:
#include stdio.h
main()
{
char s[80],c;
int j,k;
printf("\nEnter a string: ");
gets(s);
printf("\nEnter a character: ");
c=getchar( );
for(j=k=0;s[j]!= '\0';j++)
if(s[j]!=c)
s[k++]=s[j];
s[k]= '\0';
printf("\n%s\n",s);
system("pause");
}
扩展资料
自定义函数代码如下
function delarrayval2($arr,$v){
$keyarr = array_keys($arr, $v);
if(count($keyarr)){
foreach ($keyarr as $key) {
unset($arr[$key]);
}
}
return $arr;
}
#include stdio.h
int deldigital (char *s)
{
int cnt;
char *p;
for(cnt=0,p=s;*p;++p)
if(*p'0'||*p'9')
*s++=*p;
else
cnt++;
*s=*p;
return cnt;
}
int main()
{
char s[100];
gets(s);
deldigital(s);
puts(s);
return 0;
}
#includestdio.h
void del(char * s,int n,int len)
{char *p;
s+=n;
for(p=s+len;*s++=*p++;);
}
int main()
{char s[]="apple";
if(s==NULL||n0)
{printf("error");
return 0;
}
del(s,2,2);
puts(s);
return 0;
}
1、对于有头结点(该结点不存储数据)的链表,删除某个结点容易操作。
int EraseNode(LIST *head,type data) {
LIST *q,*p;
for(p = head; p-next; p = p-next) {
if(p-next-data == data) { /* 满足删除条件 */
q = p-next;
p-next = q-next;
free(q);
return 1;
}
}
return 0; /* 没有找到满足条件的结点,失败返回 */
}
2、对于没有头结点的链表,操作方法有些不同。
LIST *EraseNode(LIST *head,type data) { /* 返回链表头指针 */
LIST *q,*p;
if(head-data == data) { /* 先处理头结点 */
q = head;
p = q-next;
free(q);
return p;
}
for(p = head; p-next; p = p-next) {
if(p-next-data == data) { /* 满足删除条件 */
q = p-next;
p-next = q-next;
free(q);
return head;
}
}
return head; /* 没有找到满足条件的结点,失败返回 */
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流