增: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
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)