⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sy1.c

📁 链表的建立
💻 C
字号:
#define NULL 0;
#include <iostream.h> 
#include <stdlib.h> 

struct lnode {
      int  data;
      struct lnode *next;
    };  typedef struct lnode LNode;

LNode * LinkList_Create(int n)
{ LNode *head, *p, *tail;
         int i;
         head=tail=(LNode *) malloc(sizeof(LNode));
   for(i=1;i<=n;i++)
             {   p=(LNode *)malloc(sizeof(LNode));
      p->data=i;
                 tail->next=p;  tail=p;
             }
        tail->next=NULL;
	return(head);
}


int  LinkList_Insert(LNode *head,int x,int i)
{

 LNode*q,*p;
 int j;
 if(i<=0)
 return(0);
 for(p=head,j=0;
 (p!=NULL)&&(j<i-1);j++)
 p=p->next;
 if(p==NULL)
 return(0);
 q=(LNode*)malloc(sizeof(LNode));
 q->data=x;
 q->next=p->next;
 p->next=q;
 return(1);
 }

int LinkList_Delete(LNode *head,int i)
{
   LNode *p,*q;
   int j;
   if(i<=0) return(0);
   for(p=head,j=0; (p!=NULL) && (j<i-1); j++ )
   p=p->next;
   if(p==NULL) return(0);
   q=p->next;
   p->next=q->next;
   free(q);
       return(1);
}


int main(void)
{
int i;
head *l = (head *)malloc(sizeof(head));
Lnode *head;


LinkList_Create(int l)
for(i = 0; i < 10; ++i)

LinkList_Insert(l, 1, i);
printf("length = %d\n", tail->length);
for(head = l->next; head != NULL; head = head->next)
printf("%3d", head->data);

for(i = 0; i < 5; ++i)
LinkList_Insert(l, 2, -i);
printf("\nlength = %d\n", h->length);
for(head= l->next; head != NULL; head = head->next)
printf("%3d", head->data);

for(i = 10; i >=0; --i)
LinkList_Delete(h, i);
printf("\nlength = %d\n", h->length);
for(head = l->next;head != NULL;head = head->next)
printf("%3d", head->data);

free(l);
getchar();
return 0

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -