首页 > 编程 > C > 正文

数据结构 C语言实现循环单链表的实例

2020-01-26 14:09:35
字体:
来源:转载
供稿:网友

数据结构 C语言实现循环单链表的实例

实例代码:

//=========杨鑫========================// //循环单链表的实现 #include <stdio.h> #include <stdlib.h>   typedef int ElemType; //定义结点类型  typedef struct Node {   ElemType data;           struct Node *next;       }Node,*LinkedList; int count = 0;   //1、单循环链表的初始化 LinkedList init_circular_linkedlist() {   Node *L;   L = (Node *)malloc(sizeof(Node));    if(L == NULL)                 printf("申请内存空间失败/n");   L->next = L;           }    //2、循环单链表的建立 LinkedList creat_circular_linkedlist() {   Node *L;   L = (Node *)malloc(sizeof(Node));     L->next = L;              Node *r;   r = L;                   ElemType x;                while(scanf("%d",&x))   {     if(x == 0)       break;     count++;     Node *p;     p = (Node *)malloc(sizeof(Node));       p->data = x;                 r->next = p;                 r = p;   }   r->next = L;    return L;   }   //4、循环单链表的插入,在循环链表的第i个位置插入x的元素 LinkedList insert_circuler_linkedlist(LinkedList L,int i,ElemType x) {   Node *pre;                       pre = L;   int tempi = 0;   for (tempi = 1; tempi < i; tempi++)     pre = pre->next;                 Node *p;                        p = (Node *)malloc(sizeof(Node));    p->data = x;    p->next = pre->next;   pre->next = p;   return L;               }    //5、循环单链表的删除,在循环链表中删除值为x的元素 LinkedList delete_circular_linkedlist(LinkedList L,ElemType x) {   Node *p,*pre;                    p = L->next;   while(p->data != x)                 {       pre = p;      p = p->next;   }   pre->next = p->next;                 free(p);   return L; }    int main() {   int i;   LinkedList list, start;   printf("请输入循环单链表的数据, 以0结束!/n");    list = creat_circular_linkedlist();   printf("循环单链表的元素有:/n");   for(start = list->next; start != NULL; start = start->next)   {     if(count== 0)     {         break;     }     printf("%d ", start->data);     count--;   }        printf("/n");   return 0; }  

如图:

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选