叮叮咚! 这周学习了链表的有关操作,下面就是具体代码。
#include<stdio.h>
#include<stdlib.h>
typedef struct Pnode
{
int data;
struct Pnode * next;
}*pnode,node;
int iccount;
pnode create()
{
pnode head,cur,temp;
int number;
printf("你想创建一个多长的链表:"); scanf("%d",&number);
head=(pnode)malloc(sizeof(node)); t
emp=head;
for(int i=0;i<number;i++)
{
cur=(pnode)malloc(sizeof(node));
scanf("%d",&cur->data);
cur->next=NULL;
temp->next=cur; t
emp=cur;
}
return head; }
void insert(pnode head)
{
pnode temp,cur;
int number;
printf("你要插到第几个数之后:"); scanf("%d",&number);
temp=head->next;
printf("你想插入的数是:");
for(int i=0;i<number;i++)
{
temp=temp->next;
}
cur=(pnode)malloc(sizeof(node));
scanf("%d",&cur->data);
cur->next=temp->next;
temp->next=cur;
iccount++;
}
void insert1(pnode head)
{
pnode cur;
printf("输入你想插入的数:");
cur=(pnode) malloc (sizeof(node));
scanf("%d",&cur->data);
cur->next=head->next;
head->next=cur;
iccount++;}
void insert3(pnode head)
{
pnode cur,temp;
temp=head->next;
printf("想插入什么数字:");
for(int i=0;temp->next!=NULL;i++)
{
temp=temp->next;
}
cur=(pnode)malloc(sizeof(node));
scanf("%d",&cur->data);
cur->next=NULL;
temp->next=cur;
iccount++;}
pnode reverse (pnode head)
{
pnode prev,temp,cur;
prev=NULL;
cur=head->next;
while(cur)
{
temp=cur->next;
cur->next=prev;
prev=cur;
cur=temp;
}
pnode pnew=(pnode)malloc(sizeof(node));
pnew->next=prev;
head=pnew;
return head;
}
void Delete(pnode head)
{
pnode temp,cur;
int number;
printf("你要删除第几个数:");
scanf("%d",&number);
temp=head;
cur=temp;
for(int i=0;i<number;i++)
{
temp=cur;
cur=cur->next;
}
temp->next=cur->next;
free(cur);
iccount--;
}
void reserch(pnode head)
{
pnode temp=head;
int number;
printf("你要搜索第几个数字呢:"); scanf("%d",&number);
for(int i=0;i<number;i++)
{
temp=temp->next;
}
printf("%d",temp->data);
}
void redefine(pnode head)
{
pnode temp=head,cur;
int number;
printf("你要修改第几个数呢? :");
scanf("%d",&number);
printf("你要修改为多少呢:");
for(int i=0;i<number-1;i++)
{
temp=temp->next;
}
cur=(pnode)malloc(sizeof(node));
scanf("%d",&cur->data);
cur->next=temp->next->next;
temp->next=cur;
}
void print(pnode head)
{
pnode temp;
temp=head->next;
if(head!=NULL)
do
{
printf("%d ",temp->data);
temp=temp->next;
}
while(temp!=NULL);
}
int main()
{
pnode head;
head=create();
redefine(head);
print(head);
return 0;
}
|