|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef struct Node{
int data;
struct Node * pnext;
}NODE,*PNODE;
PNODE create_list(void);
void traver_list( PNODE phead );
PNODE dlele_list(PNODE phead);
PNODE insert_list(PNODE phead);//函数声明
int main(void)
{
PNODE phead =NULL;
phead=create_list();
traver_list(phead);
insert_list( phead);
traver_list(phead);
dlele_list(phead);
traver_list(phead);
return 0;
}//主函数
PNODE create_list(void)
{
int lon;
int tem;
int i;
PNODE phead=(PNODE)malloc(sizeof(NODE));
if(NULL==phead)
{
printf("分配失败");
exit( -1 );
}
PNODE ptail=phead;
ptail->pnext=NULL;
printf("输入创建链表个数\n");
scanf("%d",&lon );
for(i=0;i<lon;i++)
{
printf("输入第%d个节点数据",i+1);
scanf("%d",&tem);
PNODE pnew=(PNODE)malloc(sizeof(NODE));
pnew->data=tem;
ptail->pnext=pnew;
pnew->pnext=NULL;
ptail=pnew;
}
return phead;
}//创建链表
void traver_list( PNODE phead )
{
PNODE p = phead->pnext;
printf("链表为:\n");
while(p!=NULL)
{
printf("%d",p->data);
p=p->pnext;
printf( "\n" );
}
}//链表遍历
PNODE insert_list(PNODE phead)
{
int data1;
int loc;
printf("输入要插入的位置");
scanf("%d",&loc);
printf("输入要插入的数据");
scanf("%d",&data1);
PNODE t=phead->pnext;
for(int i=0;i<loc;i++)
{
t=t->pnext;
}
PNODE pnew=(PNODE)malloc(sizeof(NODE));
if(NULL==pnew)
{
printf("分配失败");
exit( -1 );
}
pnew->data=data1;
pnew->pnext=t->pnext;
pnew=t;
free(t);
return phead;
}//链表插入
PNODE dlele_list(PNODE phead)
{
int del;
int i;
printf("输入要删除第几个节点");
scanf("%d",&del);
PNODE q=phead->pnext;
for(i=0;i<del;i++)
{ q=q->pnext;
}
PNODE t;
t=q;
q=q->pnext;
free(t);
return phead;
}//链表删除
|
|