用C语言实现信息的增加删除修改怎么实现?

用C语言实现信息的增加删除修改怎么实现?,第1张

你用的是链表还是数组?如果是数组的话,先查找到要修改的信息,在进行要修改的 *** 作就行了。如果是链表的话,

增:1.增加至表尾:if(head==NULL) {head=p}else{while(pr->next!=NULL){pr=pr->next}pr->next=p}pr=pprintf("Input node data")scanf("%d",&data)pr->data = datapr->next=NULL

2增至特定的节点后,比如说在增加在A节点后,p指向新增加的节点,q指向A节点,则:

p->next = q-<nextq->next=p

# include<stdio.h>

# include<string.h>

struct tongxun

{char name[20]

char number[20]

struct tongxun *next

}

int all=0

struct tongxun* tj() /*创建链表并添加成员*//**/

{

struct tongxun *head=NULL

struct tongxun *p,*q

system("CLS")

p=q=(struct tongxun *)malloc(sizeof(struct tongxun))

for()

{printf("请输入姓名:(如果输入0则退出添加)\n")

scanf("%s",p->name)

if(!(strcmp(p->name,"0"))){ free(p)return head}

else {printf("请输入电话号码:\n")

scanf("%s",p->number)

all++

if(all==1)

{p->next=head

q=p

head=q}

else

{p->next=NULL

q->next=p

q=p

}

p=(struct tongxun *)malloc(sizeof(struct tongxun))

}

}

}

cz(struct tongxun *head) /*查找函数*/

{char name1[20],*a

struct tongxun *p

p=heada=name1

system("CLS")

printf("请输入要查找的姓名:\n")

scanf("%s",a)

while(p!=NULL)

{if((strcmp(p->name,a))==0) {printf("姓名:%s\n电话号码:%s\n",p->name,p->number)return}

else p=p->next

}

printf("没有此人\n")

return

}

insert(struct tongxun *head) /*插入新成员*/

{struct tongxun* pnew

pnew=(struct tongxun *)malloc(sizeof(struct tongxun))

while(1)

{printf("请输入姓名:(如果输入0则退出添加)\n")

scanf("%s",pnew->name)

if(!(strcmp(pnew->name,"0"))){ free(pnew)return head}

else {printf("请输入电话号码:\n")

scanf("%s",pnew->number)

all++

pnew->next=head

head=pnew

pnew=(struct tongxun *)malloc(sizeof(struct tongxun))

}

}

}

shuchu(struct tongxun *head)/*输出成员*/

{struct tongxun *p

p=head

printf("这里一共有%d个成员\n",all)

while(p!=NULL)

{printf("姓名:%s\n电话号码:%s\n",p->name,p->number)

p=p->next

}

}

xg(struct tongxun *head) /*修改成员*/

{char name1[20],*a

struct tongxun *p

p=heada=name1

system("CLS")

printf("请输入要修改的姓名:\n")

scanf("%s",a)

while(p!=NULL)

{if((strcmp(p->name,a))==0) {printf("请重新输入姓名:\n")

scanf("%s",p->name)

printf("请重新输入电话号码:\n")

scanf("%s",p->number)return}

else p=p->next

}

printf("没有此人\n")

return

}

sc(struct tongxun *head) /*删除成员*/

{char name1[20],*a

struct tongxun *p,*q

p=q=heada=name1

system("CLS")

printf("请输入要删除的姓名:\n")

scanf("%s",a)

while(p!=NULL)

{

if((strcmp(p->name,a))==0) {all--q->next=p->nextreturn}

else {q=pp=p->next}

}

printf("没有此人\n")

return

}

void main()

{struct tongxun *headint i

while(1)

{printf("请选择:\n")

printf("1.添加 2.查找 3.修改 4.删除5.插入 6.输出\n")scanf("%d",&i)

switch(i)

{case 1:head=tj()break

case 2:cz(head)break

case 3:xg(head)break

case 4:sc(head)break

case 5:insert(head)break

case 6:shuchu(head)break

default:printf("输入有误,请重新输入:\n")break

}

}

}

#include<stdio.h>

#define maxn 1024

int arr[maxn], n

void add(int value)

{

    arr[n - 1] = value

    return

}

void del(int index)

{

    int i, j

    for(i = index i < n - 1 i++)

        arr[i] = arr[i + 1]

    n--

    return

}

void update(int index, int value)

{

    arr[index] = value

    return

}

void search(int index)

{

    printf("%d\n", arr[index])

    return

}

void BubbleSort(int count)

{

    int i, j

    for(i = 0 i < count i++)

    {

        for(j = count - 1 j > i j--)

        {

            if(arr[j] < arr[j-1])

            {

                int temp = arr[j-1]

                arr[j - 1] = arr[j]

                arr[j] = temp

            }

        }

    }

    return

}

int main(void)

{

    n = 0

    return 0

}


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

原文地址: http://outofmemory.cn/bake/11963390.html

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

发表评论

登录后才能评论

评论列表(0条)

保存