#include stdio.h
成都創(chuàng)新互聯(lián)公司是專業(yè)的平定網(wǎng)站建設(shè)公司,平定接單;提供做網(wǎng)站、成都網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行平定網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
#include malloc.h
#include conio.h
typedef struct node //定義節(jié)點(diǎn)
{
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)//如果頭結(jié)點(diǎn)的值等于k,刪除頭結(jié)點(diǎn)
{
*head = (*head)-next;
return;
}
while(pp-value != k)
{
pt = pp;
pq = pp-next;
pp = pq;
}
pt-next = pp-next;//刪除結(jié)點(diǎn)
}
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();//隨意按個(gè)鍵退出界面
return 0;
}
delete是和new一起使用的,如果要使用delete的話意味意著你前面創(chuàng)建鏈表的時(shí)候有使用new創(chuàng)建每一個(gè)節(jié)點(diǎn)。如果前面沒有new的話后面就不能使用delete。
C語言刪除數(shù)組指定元素的源代碼如下:
#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");
}
擴(kuò)展資料
自定義函數(shù)代碼如下
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、對(duì)于有頭結(jié)點(diǎn)(該結(jié)點(diǎn)不存儲(chǔ)數(shù)據(jù))的鏈表,刪除某個(gè)結(jié)點(diǎn)容易操作。
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;?/*?沒有找到滿足條件的結(jié)點(diǎn),失敗返回?*/
}
2、對(duì)于沒有頭結(jié)點(diǎn)的鏈表,操作方法有些不同。
LIST?*EraseNode(LIST?*head,type?data)?{?/*?返回鏈表頭指針?*/
LIST?*q,*p;
if(head-data?==?data)?{?/*?先處理頭結(jié)點(diǎn)?*/
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;?/*?沒有找到滿足條件的結(jié)點(diǎn),失敗返回?*/
}