链表的插入

来源:互联网 发布:安卓上运行windows游戏 编辑:程序博客网 时间:2024/05/29 06:50

1.设顺序表A中的数据元素递增有序,试写一程序,将x插入到顺序表的适当位置上,使该表仍然有序。

#include<stdio.h>#include<stdlib.h>typedef struct node{int a; struct node *link;}node,*nodelink;struct node *creatlink()//创建一个含有10个节点的链表 {int i;nodelink p,q,head;head=(nodelink)malloc(sizeof(node));p=(nodelink)malloc(sizeof(node));head->link=p;for(i=1;i<10;i++){p->a=2*i-1;q=(nodelink)malloc(sizeof(node));p->link=q;p=q;}p->link=NULL;p->a=2*i-1;return head; }void writelink(nodelink head){nodelink q;for(q=head->link;q;q=q->link)printf("%d ",q->a);printf("\n");}int listinsert(nodelink head,int x){nodelink p,q,r;p=head->link;while(p&&x>p->a){q=p;p=p->link;}r=(nodelink)malloc(sizeof(node));r->a=x;r->link=p;if(p==head->link)//如果插在最前面 head->link=r;elseq->link=r;}main(){int x;nodelink head;printf("x is ");scanf("%d",&x);struct node *creatlink();head=creatlink();void writelink(nodelink head);writelink(head);int listinsert(nodelink head,int x);listinsert(head,x);writelink(head);} 


原创粉丝点击